错误消息正在所有日志文件中打印

Error messages are getting printed in all the log files

日志错误消息正在打印到所有日志文件而不是错误文件。不确定我在配置中遗漏了什么。任何人都可以检查并告诉我

我尝试了所有排列和组合,但似乎没有任何效果。 我想我缺少一些配置但不确定是什么。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATTERN">
            %d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%X{id}] ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
        </Property>
    </Properties>


     <Appenders>
         <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
        <RollingFile name="ROOTLOGS" fileName="${sys:LOG_DIR}bot.log"
                     filePattern="${sys:LOG_DIR}bot-%d{yyyy-MM-dd}-%i.log.gz" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}- [%-5level] : %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />

            </Policies>
            <DefaultRolloverStrategy max="10" />
             <ThresholdFilter level="DEBUG"/>
        </RollingFile>
        <RollingFile name="ERRORLOGS" fileName="${sys:LOG_DIR}boterror.log"
                     filePattern="${sys:LOG_DIR}boterror-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10" />
             <ThresholdFilter level="ERROR"/>
        </RollingFile>
    </Appenders>


    <Loggers>

        <Logger name="com.org.bot" level="DEBUG" additivity="false">
            <appender-ref ref="ERRORLOGS" />
            <appender-ref ref="ROOTLOGS" />
        </Logger>

        <Root level="info" additivity="false">
            <AppenderRef ref="ConsoleAppender"/>
            <AppenderRef ref="ROOTLOGS"  />
            <AppenderRef ref="ERRORLOGS" />
        </Root>

    </Loggers>
</Configuration>

预期错误消息应该只打印到 boterror.log 文件,而正常的应用程序消息应该打印到 bot.log。

拒绝 来自 ROOTLOGS 的错误消息。

    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
        <RollingFile name="ROOTLOGS" fileName="${sys:LOG_DIR}bot.log"
                     filePattern="${sys:LOG_DIR}bot-%d{yyyy-MM-dd}-%i.log.gz" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}- [%-5level] : %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10" />
            <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/>
        </RollingFile>
        <RollingFile name="ERRORLOGS" fileName="${sys:LOG_DIR}boterror.log"
                     filePattern="${sys:LOG_DIR}boterror-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10" />
            <ThresholdFilter level="ERROR"/>
        </RollingFile>
    </Appenders>

这就是最终成功的方法。无论 sazzad 有何建议 + 我需要向 ERRORLOG 添加阈值过滤器,否则正常日志也会被添加到其中。

这是最终配置,符合我的预期

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATTERN">
            %d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%X{id}] ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
        </Property>
    </Properties>


     <Appenders>
         <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
        <RollingFile name="ROOTLOGS" fileName="${sys:LOG_DIR}bot.log"
                     filePattern="${sys:LOG_DIR}bot-%d{yyyy-MM-dd}-%i.log.gz" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}- [%-5level] : %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />

            </Policies>
            <DefaultRolloverStrategy max="10" />

             <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/>
        </RollingFile>
        <RollingFile name="ERRORLOGS" fileName="${sys:LOG_DIR}boterror.log"
                     filePattern="${sys:LOG_DIR}boterror-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10" />
           <ThresholdFilter level="ERROR"/> 
        </RollingFile>

    </Appenders>


    <Loggers>

        <Logger name="com.org.bot" level="DEBUG" additivity="false">
            <appender-ref ref="ERRORLOGS" />
            <appender-ref ref="ROOTLOGS" />
        </Logger>

        <Root level="info" additivity="false">
            <AppenderRef ref="ConsoleAppender"/>
            <AppenderRef ref="ROOTLOGS"  />
            <AppenderRef ref="ERRORLOGS" />
        </Root>

    </Loggers>
</Configuration>