log4j2的配置和使用以及与log4j的区别
xiaosawuhen 0人评论 940人阅读 2018-03-05 10:25:00
http://logging.apache.org/log4j/2.x/manual/webapp.html#Servlet-3.0
log4j2的配置主要包含两方面功能
1.log配置文件的配置问题
如果进行了local的配置(普通配置,JNDI)配置,直接寻找指定的文件
普通配置:
1 2 3 4 |
|
JNDI配置:
isLog4jContextSelectorNamed:布尔类型配置,由它选择是否使用JndiContextSelector。如果它设为true的话,那么log4jContextName一定要配置或者在web.xml中指定display-name。并且log4jConfiguration也要配置一个URL,这个URL是log4j2的配置文件地址,但这个不是必须要配置的。
log4jContextName:配置display-name。
log4jConfiguration:log4j配置文件的路径
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2.是否自启动(分为servlet2.5,servlet3.0以上)
servlet2.5:需要自己配置filter,listener
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
servlet3.0:
log4j2能够在Servlet3.0下正常使用且不用配置。因为在Servlet3.0的API中加入了ServletContainerInitializer,它自动启动了Filter和ServletContextListener(这两个类在Servlet2.5中需要配置)。
对于某些用户来说,自动启动Log4j是有问题的或者不受欢迎的。你可以使用isLog4jAutoInitializationDisabled参数来关闭自动启动。在web.xml中进行如下设置,即可自动取消启动。
1 2 3 4 |
|
一旦你禁止自动初始化,你必须像Servlet2.5 web程序中那样进行初始化操作。而且必须要在其它的框架启动之前启动。
由于log4j2不支持2.4及以下版本的web程序,下面介绍下log4j与log4j2的一些区别
1.pom引入的区别
log4j:
1 2 3 4 5 |
|
log4j2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
2.log4j想要生效,需要在xml中进行配置,而log4j2则有自启动功能
1 2 3 4 5 6 7 8 9 10 11 |
|
3.Log调用
log4j:
1 2 |
|
log4j2:
1 2 3 4 |
|
log4j2配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|