Log4j2.xml不同类的日志写到不同的文件中

版权声明:本文为博主原创文章,未经博主允许不得转载。 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); 
    }
}

猜你喜欢

转载自blog.csdn.net/lyzx_in_csdn/article/details/83412207