将log4j.xml修改为log4j2.xml

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

  

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
	<appender name="Console" class="org.apache.log4j.ConsoleAppender">
	   
	  <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" />
		 
    <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="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文件


	<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>
			
			<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%nPattern>
				PatternLayout>
				
				<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%nPattern>
				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%nPattern>
				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级别的日志
将log4j.xml修改为log4j2.xml_第1张图片
Policies:日志文件产生的策略,下图表示每隔一定的时间就产生一个新的日志文件
在这里插入图片描述

你可能感兴趣的:(log4j,log4j2,IT技术,java)