版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyzx_in_csdn/article/details/83412207
最近在做项目时用到了log4j2,
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" strict="true"
name="XMLConfigTest" packages="org.apache.logging.log4j.test">
<!-- 定义3个属性供后面使用-->
<Properties>
<Property name="front-event">/var/log</Property>
<Property name="front-event-data">/var/log</Property>
<Property name="front-event-data-test">/var/log</Property>
</Properties>
<Filter type="ThresholdFilter" level="ALL" />
<Appenders>
<Appender type="Console" name="SYSTEM_OUT">
<Layout type="PatternLayout">
<Pattern>[front-event-console] %-d{HH:mm:ss SSS} %5p (%c:%L) - %m%n</Pattern>
</Layout>
</Appender>
<!-- 添加一个Appder
fileName :文件的位置
filePattern :文件备份时的名字
<Layout> :表示日志的打印格式
<Policies>:表示备份策略
-->
<Appender type="RollingFile" name="front-event"
fileName="${front-event}/front-event.log"
filePattern="${front-event}/front-event-%d{yyyy-MM-dd}-%i.log">
<Layout type="PatternLayout">
<Pattern>[front-event] %d{HH:mm:ss SSS} %5p (%c:%L) - %m%n</Pattern>
</Layout>
<Policies>
<!-- 表示每天生成一个 最多保存60天的日志-->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<DefaultRolloverStrategy max="60"/>
<!-- 表示每个日志最大64M 对多20个
<SizeBasedTriggeringPolicy size="64MB"></SizeBasedTriggeringPolicy>
<DefaultRolloverStrategy>20</DefaultRolloverStrategy>-->
</Policies>
</Appender>
<Appender type="RollingFile" name="front-event-data"
fileName="${front-event-data}/front-event-data.log"
filePattern="${front-event-data}/front-event-data-%d{yyyy-MM-dd}-%i.log">
<Layout type="PatternLayout">
<Pattern>[front-event-data] %-d{HH:mm:ss SSS} %5p (%c:%L) - %m%n</Pattern>
</Layout>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<DefaultRolloverStrategy max="60"/>
<!--<SizeBasedTriggeringPolicy size="64MB"></SizeBasedTriggeringPolicy>
<DefaultRolloverStrategy>20</DefaultRolloverStrategy>-->
</Policies>
</Appender>
<Appender type="RollingFile" name="front-event-data-test"
fileName="${front-event-data-test}/front-event-data-test.log"
filePattern="${front-event-data-test}/front-event-data-test-%d{yyyy-MM-dd}-%i.log">
<Layout type="PatternLayout">
<Pattern>[front-event-test] %d{HH:mm:ss SSS} %5p (%c:%L) - %m%n</Pattern>
</Layout>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<DefaultRolloverStrategy max="60"/>
<!--<SizeBasedTriggeringPolicy size="64MB"></SizeBasedTriggeringPolicy>
<DefaultRolloverStrategy>20</DefaultRolloverStrategy>-->
</Policies>
</Appender>
</Appenders>
<Loggers>
<!-- 表示com.jufan.worker.EventProcessor这个类的日志按照Appder的名字为
front-event定义的行为打印日志
-->
<Logger name="com.jufan.worker.EventProcessor" level="info" additivity="false">
<AppenderRef ref="front-event" />
</Logger>
<Logger name="com.jufan.worker.EventProcessor.data" level="info" additivity="false">
<AppenderRef ref="front-event-data" />
</Logger>
<Logger name="com.jufan.worker.EventProcessor.data.test" level="info" additivity="false">
<AppenderRef ref="front-event-data-test" />
</Logger>
<Root level="info">
<AppenderRef ref="front-event" />
<AppenderRef ref="SYSTEM_OUT"/>
</Root>
</Loggers>
</Configuration>
测试类
package com.jufan.worker;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class EventProcessor{
private static Logger logger = LogManager.getLogger(EventProcessor.class);
private static Logger event_logger =
LogManager.getLogger("com.jufan.worker.EventProcessor.data");
private static Logger event_logger_test =
LogManager.getLogger("com.jufan.worker.EventProcessor.data.test");
public static void main(String[] args) throws Exception{
logger.info("对详细处理异常:",e);
event_logger.info("对详细处理异常:",e);
event_logger_test.info("对详细处理异常:",e);
}
}