log4j2.xml的配置

时间:2017-05-23 20:24:05

标签: java maven log4j2

我正在使用log4j2。我希望我的日志有3个出口:控制台和2个滚动文件:第一个用于信息日志(FileRoot),第二个用于错误(FileErrors)。在运行项目后,将创建两个文件,日志将显示在控制台和FileErrors上,但FileRoot中没有任何内容。我的配置有什么问题?这是它:

 <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-10level %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="FileRoot" fileName="master/logs/app.log" filePattern="master/logs/app-%d{yyyy-MM-dd-HH}.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>

        <RollingFile name="FileErrors" fileName="master/logs/appErrors.log" filePattern="master/logs/appErrors-%d{yyyy-MM-dd-HH}.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="com.yyyy" level="ALL" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>
        <Logger name="com.yyyy" level ="INFO" additivity="false">
            <AppenderRef ref="FileRoot" />
        </Logger>
        <Logger name="com.yyyy" level="ERROR" additivity="false">   
            <AppenderRef ref="FileErrors" />
        </Logger>
        <Root level="info">
            <AppenderRef ref="Console"></AppenderRef>
            <AppenderRef ref="FileRoot" />
            <AppenderRef ref="FileErrors"></AppenderRef>
        </Root>
    </Loggers>
</Configuration>``

这里是pom.xml中的依赖项:

 <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.8.2</version>
    </dependency>

我用

 if( LOG.isInfoEnabled() )
    {
        LOG.info( "app starting" );
    }

0 个答案:

没有答案