配置Log4j记录日志

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rexueqingchun/article/details/81671310

1.编写log4j.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<!-- <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> -->
<!--#log4j中有5级logger ,#FATAL 0 ,#ERROR 3 ,#WARN 4 ,#INFO 6 ,#DEBUG 7 -->
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
	<!-- 将日志信息输出到控制台 -->
	<appender name="LOG.Console" class="org.apache.log4j.ConsoleAppender">
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<!--过滤器设置输出的级别-->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG" />
		</filter>
	</appender>
	
	<!-- DEBUG -->
	<appender name="LOG.DEBUG" class="org.apache.log4j.RollingFileAppender">
		<!-- 将日志信息输出到文件,但是当文件的大小达到某个阈值的时候,日志文件会自动回滚 -->
		<param name="File" value="${webApp.root}/logs/debug.log" />
		<!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB -->
		<param name="MaxFileSize" value="10240KB" /> 
		<!-- 最多生成10个日志文件,当每个文件都达到10240KB时,则回滚覆盖重写 -->
		<param name="MaxBackupIndex" value="10" />	
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG" />
			<param name="LevelMax" value="DEBUG" />
		</filter>
	</appender>
	<!-- INFO -->
	<appender name="LOG.INFO" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${webApp.root}/logs/info.log" />
		<param name="MaxFileSize" value="10240KB" />
		<param name="MaxBackupIndex" value="10" />
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="INFO" />
			<param name="LevelMax" value="INFO" />
		</filter>
	</appender>
	<!-- WARN -->
	<appender name="LOG.WARN" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${webApp.root}/logs/warn.log" />
		<param name="Encoding" value="UTF-8" />
		<param name="MaxFileSize" value="10240KB" />
		<param name="MaxBackupIndex" value="10" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="WARN" />
			<param name="LevelMax" value="WARN" />
		</filter>
	</appender>
	<!-- ERROR -->
	<appender name="LOG.ERROR" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${webApp.root}/logs/error.log" />
		<param name="MaxFileSize" value="10240KB" />
		<param name="MaxBackupIndex" value="10" />
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="ERROR" />
			<param name="LevelMax" value="ERROR" />
		</filter>
	</appender>
	<!-- FATAL -->
	<appender name="LOG.FATAL" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${webApp.root}/logs/fatal.log" />
		<param name="MaxFileSize" value="10240KB" />
		<param name="MaxBackupIndex" value="10" />
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="FATAL" />
			<param name="LevelMax" value="FATAL" />
		</filter>
	</appender>
   
	<!-- Spring Web LOG:400 404 500 error code -->
	<logger name="org.springframework">
		<level value="WARN" />
	</logger>
	<logger name="org.springframework.web">
		<level value="WARN" />
	</logger>
	
	<!-- Hibernate -->
	<logger name="org.hibernate">
		<level value="DEBUG" />
	</logger> 
	
	<!-- MyBatis 
	<logger name="org.apache.ibatis">
		<level value="DEBUG" />
	</logger>
	-->
	
	<logger name="java.sql.Connection">
		<level value="DEBUG" />
	</logger> 
	
	<!-- 定义全局的日志输出级别,但是在输出目的地的配置中配置的具体输出级别优先级高于全局定义的优先级-->
	<root>
		<level value="DEBUG" />
		<appender-ref ref="LOG.Console" />
		<appender-ref ref="LOG.DEBUG" />
		<appender-ref ref="LOG.INFO" />
		<appender-ref ref="LOG.WARN" />
		<appender-ref ref="LOG.ERROR" />
		<appender-ref ref="LOG.FATAL" />
	</root>
</log4j:configuration>

2.web.xml添加配置log4j

<!-- 配置后可通过${webApp.root}动态指定项目路径 -->
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>webApp.root</param-value>
	</context-param>
	
	<!-- 配置log4j.xml -->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/log4j.xml</param-value>
	</context-param>
	<!-- 每60s扫描log4j.xml文件,可在log4j.xml中动态修改日志级别 -->
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
	
	<!-- 监听log4j -->
	<listener>
		<listener-class>
			org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>

3.项目中记录异常日志

private static final Logger logger = Logger.getLogger(LxwmController.class);
	
logger.error("异常信息");

猜你喜欢

转载自blog.csdn.net/rexueqingchun/article/details/81671310