将log4j.xml修改为log4j2.xml

17 篇文章 0 订阅
1 篇文章 0 订阅

最近由于工作原因需要将log4j 1.2版本升级为2.0以上,就需要将log4j配置文件修改成2.0版本

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!--将日志输出到控制台-->
	<appender name="Console" class="org.apache.log4j.ConsoleAppender">
	   <!--输出的级别为INFO-->
	  <param name="Threshold" value="INFO" />
		<layout class="org.apache.log4j.PatternLayout">
			 <!--日志输出的格式-->
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n" />
		</layout>
	</appender>
	 <!--将日志输出到文件中,并且每隔一定的时间产生一个新的日志文件-->
	<appender name="Info" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="../logs/info.log" />
		<param name="Threshold" value="INFO" />
		<param name="Append" value="true" />
		<param name="Encoding" value="UTF-8" />
		 <!--每隔一定的时间产生一个新的日志文件,文件名称的格式为value属性对应的值-->
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n" />
		</layout>
		<!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="INFO" />
			<param name="LevelMax" value="WARN" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>
	
	<appender name="Error" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="../logs/error.log" />
    <param name="Threshold" value="ERROR" />
    <param name="Append" value="true" />
    <param name="Encoding" value="UTF-8" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n" />
    </layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMin" value="ERROR" />
      <param name="LevelMax" value="ERROR" />
    </filter>
	</appender>

	<root>
		<appender-ref ref="Info" />
		<appender-ref ref="Error" />
		<appender-ref ref="Console" />
	</root>
</log4j:configuration>

对应的log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
	<configuration status="warn">
		<Appenders>
			<!--将日志在控制台输出-->
			<Console name="Console" target="SYSTEM_OUT">
				<!--日志输出的格式-->				
				<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n"/>
			</Console>
			<!--将日志输出到文件中,fileName:文件的路径和名称,filePattern:采用某种输出日志的规则,日志的路径名和日志文件名称格式-->
			<RollingFile name="infofile" fileName="../logs/info.log" filePattern="../logs/info.log.%d{yyyy-MM-dd}">
				<PatternLayout>
					<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
				</PatternLayout>
				<!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
				<Filters>
	                <ThresholdFilter level="INFO"/>
	                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
           		 </Filters> 
           		 <!--日志文件产生的策略,每隔一定的时间产生一个新的日志文件-->          		 
				<Policies>
					<TimeBasedTriggeringPolicy/>
				</Policies> 
			</RollingFile>
			
			<RollingFile name="errorfile" fileName="../logs/error.log" filePattern="../logs/error.log.%d{yyyy-MM-dd}">
				<PatternLayout>
					<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
				</PatternLayout>				           		 
				<Policies>
					<TimeBasedTriggeringPolicy/>
				</Policies> 
			</RollingFile>
		</Appenders>
		<loggers>
			<Logger name="info" level="INFO">
				<AppenderRef ref="infofile" />
			</Logger>
			
			<Logger name="error" level="ERROR">
				<AppenderRef ref="errorfile" />
			</Logger>
			<Root>
				<AppenderRef ref="Console"/>
			</Root>
		</loggers>	
	</configuration>

代码详细讲解:
(1)1.x版本中 — Appender:日志输出器,配置日志的级别、输出位置等
对应2.x版本中Appenders
(2)将日志输出到控制台、文件等在1.X版本中使用

<appender name="Console" class="org.apache.log4j.ConsoleAppender">

根据class找到对应的类去查找输出日志的格式,输出到相应的位置
在2.X版本中直接在

<Appenders>
			<Console name="Console" target="SYSTEM_OUT">
			</Console>
			<RollingFile name="infofile" fileName="../logs/info.log" filePattern="../logs/info.log.%d{yyyy-MM-dd}">	
			<PatternLayout>
					<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
				</PatternLayout>
				<Filters>
	                <ThresholdFilter level="INFO"/>
	                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
           		 </Filters>           		 
				<Policies>
					<TimeBasedTriggeringPolicy/>
				</Policies> 			
			</RollingFile>
</Appenders>

其中Consle是将日志文件输出到控制台
RollingFile将日志输出到文件中,fileName属性对应日志路径以及文件,filePattern属性为日志名称的格式
PatternLayout:日志输出的格式
Filters:过滤日志输出的级别,下图代表该文件中只能输出INFO和WARN级别的日志
在这里插入图片描述
Policies:日志文件产生的策略,下图表示每隔一定的时间就产生一个新的日志文件
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值