最新消息:我们是一群和平年代充满浮躁与抱怨的程序猿,心中充满抱负却无处撒野,明明是一匹野马,却找不到草原。

Log4j2 的配置简单学习

技术经验 goomoon 324浏览 0评论

一、Log4j2 Maven配置

Log4j2的性能高于log4j与logback,在项目中建议使用Log4j2,其依赖如下

二、log4j2.xml文件配置

log4j2.xml的配置文件放在classpath下就会被自动加载,其配置如下:

在配置文件中:

1、根节点configuration下有两个子节点:appenders和loggers(可定义多个appender和logger了)

2、appenders:定义输出,如定义的Console,是将日志输出到控制台,并对输出设置属性(通过PatternLayout设置输出格式)

3、loggers:定义多个logger,且logger通过name进行区分,对不同的logger配置不同的输出可appender-ref引用配置的appender的name

4、logger name机制

logger name类似于java package一样,比如有个包:cn.lsw.base.log4j2,而且生成Logger对象的时候通常通过Hello.class.getName()匹配定义的logger name,这是因为Logger也有继承关系。比如给cn.lsw.base定义了一个logger,那么它也适用于cn.lsw.base.lgo4j2这个logger。名称的继承是通过点“.”分隔的。此外,在上面的loggers配置中有子节点不是logger而是root,而且这个root没有name属性。这个root相当于根节点,所有的logger都适用与这个logger,所以即使在很多类里面通过类名.class.getName()得到很多的logger,而且没有在配置文件的loggers下面做配置也都能够输出,因为都继承了root的配置。

5,Filters:<Filters>是组合过滤器额标签,它包含的子标签是具体的过滤器,这三个具体过滤器分别是:

日志等级过滤器:

正则表达式过滤器:

和时间过滤器:

需要说明的是onMatch 和 onMismatch 可以选择的值及其含义。

可选的值分别是,ACCEPT(接受), DENY(拒绝), NEUTRAL(中立)。

ACCEP 和 DENY比较好理解就是接受和拒绝的意思,在使用单个过滤器的时候,一般就是使用这两个值。但是在组合过滤器中,如果用接受ACCEPT的话,日志信息就会直接写入日志文件,后续的过滤器不再进行过滤。所以,在组合过滤器中,接受使用NEUTRAL(中立),被第一个过滤器接受的日志信息,会继续用后面的过滤器进行过滤,只有符合所有过滤器条件的日志信息,才会被最终写入日志文件。

 

三、log4j2与slf4j集成

log4j与slf4j集成还需添加另外的两个Maven Jar包依赖,配置如下:

获取Logger对象方式:

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明:刘召考的博客 » Log4j2 的配置简单学习