log4j 2.0使用非常简单,只要用LogManager的getLogger函数获取一个logger,就可以使用logger记录日志,以下是log4j2的配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%p %d{yyyy-MM-dd HH:mm:ss z}] %c{1}.%M(%L) | %m%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/HomePlatform.log" filePattern="log/$${date:yyyy-MM}/HomePlatform-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss} %-5level] %class{36} %L %M - %msg%xEx%n"/>
<SizeBasedTriggeringPolicy size="50MB"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="net.sf.ehcache" level="error"/>
<!-- Suppress success logging from InteractiveAuthenticationSuccessEvent -->
<Logger name="org.springframework.security" level="error"/>
<Logger name="org.apache" level="error"/>
<Logger name="org.apache.velocity" level="fatal"/>
<!-- Suppress invalid warning messages from JSF -->
<Logger name="org.apache.myfaces" level="error"/>
<!-- Suppress warnings from Struts -->
<Logger name="org.apache.struts2.util.TextProviderHelper" level="error"/>
<Logger name="com.opensymphony.xwork2.util.OgnlUtil" level="error"/>
<Logger name="com.opensymphony.xwork2.ognl.OgnlValueStack" level="error"/>
<Logger name="org.dbunit" level="warn"/>
<Logger name="org.hibernate" level="warn"/>
<!-- Uncomment if you want to see Hibernate's SQL -->
<!--<Logger name="org.hibernate.SQL" level="debug"/>-->
<Logger name="org.springframework" level="warn"/>
<Root level="warn">
<AppenderRef ref="RollingFile" />
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
系统选择configuration文件的优先级如下:
- classpath下名为 log4j-test.json 或者log4j-test.jsn文件
- classpath下名为 log4j2-test.xml
- classpath下名为 log4j.json 或者log4j.jsn文件
- classpath下名为 log4j2.xml