Log4j.xml配置文件

本文介绍了Log4j的配置文件,重点关注日志级别及其影响,如ERROR > WARN > INFO > DEBUG > TRACE。设置日志级别为INFO时,将输出INFO、WARN、ERROR级别的日志信息。同时,讲解了日志文件配置,包括root和logger元素,以及appender如何将日志输出到控制台或文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日志级别

  ERROR > WARN > INFO > DEBUG > TRACE
  如果设置级别为 INFO,则优先级高于等于 INFO 级别(如:INFO、WARN、ERROR)的日志信息将可以
输入到控制台或者文件中,小于该级别的如 DEBUG 和 TRACE 将不会输入。
  总结:日志级别越低,输入到控制台or文件中的日志信息越详细。

日志文件

  root:设置默认的日志输入等级和风格。
  logger:设置自定义日志等级和风格。
  appender:可以把日志输入到控制台或文件中去。
在这里插入图片描述
解释:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	 <!-- 日志被输入到文件里,可以配置多久产生一个新的日志信息文件 -->
	<appender name="CatalinaOut" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 接收日志的文件全路径名 -->
		<param name="File" value="/usr/local/tomcat/logs/catalina.txt" />
		<!-- 设置日志备份频率,默认:为每天生成一个日志文件 -->
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<param name="Append" value="true" />
		<param name="Encoding" value="UTF-8" />
		<!-- 设置日志格式-->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern"
				value="[portal-iWorld][%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n" />
		</layout>
	</appender>
	
	<!-- 同上 -->
	<appender name="systemErrorLoggerAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="/logs/exchange_www/recent/SYSTEM_ERROR_LOG.txt" />
		<param name="DatePattern" value="'.'yyyyMMdd" />
		<param name="Append" value="true" />
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%m%n" />
		</layout>
	</appender>
	
	<!-- 日志输入到控制台 -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <!-- 日志输入格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
        <!--过滤器设置输入的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 设置日志可以被输入的最小级别 -->
            <param name="levelMin" value="INFO"/>
            <!-- 设置日志输入的最大级别 -->
            <param name="levelMax" value="ERROR"/>
        </filter>
    </appender>
    
	<!-- 日志输入到文件 -->
    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
        <!-- 接收日志的文件全路径名-->
        <param name="File" value="/data/applogs/own/fileAppender.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="false"/>
        <param name="Threshold" value="INFO"/>
        <!--是否启用缓存,默认false-->
        <param name="BufferedIO" value="false"/>
        <!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K  -->
        <param name="BufferSize" value="512"/>
        <!-- 日志输入格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
    </appender>
    
	<!--
        1. 指定自定的logger的设置,additivity是否遵循缺省的继承机制
        2. 当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制
        3. 代码中使用Logger.getLogger("accessUserIdLog")获得此输出器,且不会使用根输出器
    -->
	<logger name="accessUserIdLog" additivity="false">
		<level value="INFO" />
		<appender-ref ref="CatalinaOut" />
	</logger>
	<logger name="GetFilmGroupLoger" additivity="false">
		<level value="info" />
		<appender-ref ref="systemErrorLoggerAppender" />
	</logger>

	<!-- 根据路径来控制对应包下的文件的日志等级,包中类的日志等级>=设置等级,才找根输出器的appender-->
	<logger name="org.springframework.core">
		<level value="error" />
	</logger>
	<logger
		name="com.wondertek.portal.iportal.webapp.action.OrderAction">
		<level value="info" />
	</logger>

	<!-- 输入级别是info级别及以上的日志,info及以上的日志都是会输入到CatalinaOut这个appender中 -->
	<root>
		<level value="info" />
		<appender-ref ref="CatalinaOut" />
	</root>

</log4j:configuration>

注意:

  1. root的作用是收集所有反馈的信息流,并根据配置在root中appender进行输出,只要你在自定义logger中配置了additivity=“false”,则反馈到指定的appender里
  2. logger不匹配 or 自定义logger日志等级高于root日志等级反馈到root中appender。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值