错误消息正在所有日志文件中打印
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>
日志错误消息正在打印到所有日志文件而不是错误文件。不确定我在配置中遗漏了什么。任何人都可以检查并告诉我
我尝试了所有排列和组合,但似乎没有任何效果。 我想我缺少一些配置但不确定是什么。
<?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>