现在比较吊的就是这个log4j2这个日志框架了,功能强悍.slf4j是个日志框架的统一接口,方便扩展,切换框架啥的.

配置SSM+log4J2+SL4J

https://blog.csdn.net/chy2z/article/details/80080580

一般常用的使用方式
public class JavaTest {
private final static Logger logger = LoggerFactory.getLogger(JavaTest.class);
public static void main(String[] args) {
logger.error("a{}b{}c",1,"2");
}
}

有关日志配置文件三篇比较强悍的博客

https://blog.csdn.net/yangshangwei/article/details/75146896
https://www.cnblogs.com/hafiz/p/6170702.html
https://www.cnblogs.com/SummerinShire/p/6498977.html

正八经儿吊的还是去这看 https://logging.apache.org/log4j/2.x/

项目中一个大神老哥写的

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Appenders>
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
</Console>
<RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
<RollingFile name="error" fileName="runtime/logs/error.log"
filePattern="runtime/logs/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="error" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="3" />
</RollingFile>
<RollingFile name="sql" fileName="runtime/logs/sql.log"
filePattern="runtime/logs/sql-%d{yyyy-MM-dd}-%i.log">
<PatternLayout
pattern="%date{DEFAULT} |%-20.20thread |%-30.30logger{1}|%level{length=1}| %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="3" />
</RollingFile>
<Async name="async">
<AppenderRef ref="ofbiz" />
<AppenderRef ref="stdout" />
<AppenderRef ref="error" />
</Async>
<Async name="sqlAsync">
<AppenderRef ref="sql" />
</Async>
</Appenders>
<Loggers>
<logger name="org.ofbiz.base.converter.Converters" level="warn" />
<logger name="org.apache" level="warn" />
<logger name="freemarker" level="warn" /> <!-- sql 以及耗费的执行时间 -->
<logger name="jdbc.sqltiming" level="WARN" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 只有sql,没有执行时间 -->
<logger name="jdbc.sqlonly" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 执行之后的返回结果 -->
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<logger name="jdbc.resultset" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<!-- 能看到数据库的连接数 -->
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger>
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="sqlAsync" />
</logger> <Root level="all">
<AppenderRef ref="async" />
</Root>
</Loggers>
</Configuration>

简单来说结构就是这样

日志配置
  日志定义
    输出位置1
    输出位置2
    输出位置3
    输出位置4

    异步输出1
      输出位置1
      输出位置2
      输出位置3
    异步输出2
      输出位置4

  日志配置
    配置包中的日志输出级别1(默认为root配置)
    配置包中的日志输出级别2(默认为root配置)
    配置包中的日志输出级别3(使用异步输出2中的配置)
    配置包中的日志输出级别3(使用异步输出2中的配置)

    root配置(使用异步输出1的配置)

日志框架学习(log4j2+slf4j)的更多相关文章

  1. springboot日志框架学习------slf4j和log4j2

    springboot日志框架学习------slf4j和log4j2 日志框架的作用,日志框架就是用来记录系统的一些行为的,可以通过日志发现一些问题,在出现问题之后日志是好的一个帮手. 市面上的日志框 ...

  2. 日志框架之2 slf4j+logback实现日志架构 · 远观钱途

    如何从缤纷复杂的日志系统世界筛选出适合自己的日志框架以及slf4j+logback的组合美妙之处?此文可能有帮助 logback介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网 ...

  3. 拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系

    log4j 以及 logback, slf4j 官网 日志框架的困惑 作为一个正常的项目,是必须有日志框架的存在的,没有日志,很难追踪一些奇奇怪怪的系统问题. 但是,我们经常在项目的依赖中,见到奇奇怪 ...

  4. Java日志框架 (commons-logging,log4j,slf4j,logback)

    转自:http://blog.csdn.net/kobejayandy/article/details/17335407 如果对于commons-loging.log4j.slf4j.LogBack等 ...

  5. Log4j日志框架学习零到壹(一)

    日志是系统开发过程中用于排查问题重要的记录.通常使用日志来记录系统运行的行为,什么时间点发生了什么 事情.Java中常用的莫过于Log4j框架了.下面主要围绕Log4j的基础知识.Log4j的使用方式 ...

  6. Java日志框架(Commons-logging,SLF4j,Log4j,Logback)

    简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...

  7. Java 日志框架概述(slf4j / log4j / JUL / Common-logging(JCL) / logback)

    一.简介 JAVA日志在初期可能官方并没有提供很好且实用的规范,导致各公司或OSS作者选择自行造轮子,这也导致了目前初学者觉得市面上 Java 日志库繁杂的局面. 现在市面流行以 slf4j(Simp ...

  8. log4j日志框架学习

    初识Log4j:      log4j有三个部分:           1.loggers 负责捕获日志信息.           2.appenders  负责输出信息到不同的目的地         ...

  9. Spring源码学习:第2步--使用SLF4j+Log4j日志框架替换掉其自身的commons-logging日志框架

    正如Spring官方文档所述,其底层的实现选择了commons-logging作为日志框架.这一"失足"性的选择,竟连Spring自身都抱怨.但是,谁叫Spring如此优秀呢,即使 ...

随机推荐

  1. Unity调用Windows弹框、提示框(确认与否,中文)

    Unity调用Windows弹提示框 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  2. Java中的Arrays类使用详解

    首先先创建一个打印数组的方法,方便后面直接使用 public static void output(int []a) { for(int i=0;i<a.length;i++) { System ...

  3. 向指定URL发送GET、POST方法的请求

    /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name ...

  4. C语言--成绩汇总(5班)

    一.成绩列表 第0周成绩:[http://www.cnblogs.com/ranh941/p/7587567.html] 第1周成绩:[http://www.cnblogs.com/ranh941/p ...

  5. java-内部类访问特点-私有成员内部类-静态成员内部类-局部内部类访问局部变量

    1.内部类访问特点: - 内部类可以直接访问外部类的成员,包括私有. - 外部类要访问内部类的成员,必须创建对象. - 外部类名.内部类名 对象名 = 外部类对象.内部类对象: - 例: class ...

  6. java-接口的成员特点

    1.成员变量: - 只能是常量,并且是静态的.公共的. - 默认修饰符:public static final - 建议:自己手动给出. 2.构造方法:接口没有构造方法. 3.成员方法: - 只能是抽 ...

  7. MySQL中INFORMATION_SCHEMA

    select database();  获取当前连接的数据库name 来源:http://www.cnblogs.com/drake-guo/p/6099436.html select auto_in ...

  8. js动态加载数据并合并单元格

    js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...

  9. SPOJ NSUBSTR Substrings

    题意 dt { font-weight: bold; margin-top: 20px; padding-left: 35px; } dd { box-shadow: 3px 3px 6px #888 ...

  10. Java和C++的区别杂记

    1.java中的作用域描述符(类比于C++是通过"."来实现,Java中"类名.静态成员名",C++中"类名::静态成员名" 2.java中 ...