Log4j2配置入门

首先是Log4j升级到2.0版本以后,只支持XML格式的配置文件。实际应用中需要引入的jar包有log4j-api-2.0-rc1.jar、log4j-core-2.0-rc1.jar和commons-loggin.jar这三个。

在classpath中添加一个log4j2.xml文件,内容类似这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
	<appenders>
		<Console name="Console" target="SYSTEM_OUT">
			<PatternLayout pattern="%m%n" />
		</Console>
		<File name="LogFile" fileName="logs/test.log" append="false">    
      		<!-- <PatternLayout pattern="%d{HH:mm:ss} [%-5p] %c:%L%n        %m%n" />  -->
			<PatternLayout pattern="%m%n" />
    	</File>
		<RollingFile name="RollingFile" fileName="logs/app.log"    
                 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log">    
			<PatternLayout pattern="%d{HH:mm:ss} [%-5p] %c:%L%n        %m%n" />
			<SizeBasedTriggeringPolicy size="5MB" />    
    	</RollingFile> 
	</appenders>
	<loggers>
		<root level="info">
			<appender-ref ref="Console" />
		</root>
		<logger name="com.xxx.sonar.accesslog" level="warn" additivity="false">
			<appender-ref ref="Console" />
			<appender-ref ref="LogFile" />
		</logger>
		<logger name="com.xxx.sonar.util.HttpClientHelper" level="debug" additivity="false">
			<appender-ref ref="LogFile" />
		</logger>
	</loggers>
</configuration>

 与原来不同的是pattern中不再支持\t,以前习惯于一条日志分两行,第一行输出日期时间、所在类名和行号,第二行缩进一个制表符。现在只能敲一堆空格了。

 

程序里面的应用跟原来一样:

private static Logger logger = LogManager.getLogger(AccessLog2DBService.class.getName()); 
logger.info("程序启动,准备初始化。");

 

你可能感兴趣的:(log4j)