日志错误消息将被打印到所有日志文件而不是错误文件中。不知道我在配置中错过了什么。谁能检查并让我知道
我尝试了所有排列和组合,但似乎没有任何效果。 我想我缺少一些配置,但不确定是什么。
<?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中。
答案 0 :(得分:1)
ROOTLOGS
的DENY 错误消息。
<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>
答案 1 :(得分:-1)
这才是最后的把戏。无论 sazzad 提出了什么建议,+我都需要向ERRORLOG添加阈值过滤器,而没有将普通日志也添加到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>