【发布时间】:2016-05-22 15:12:58
【问题描述】:
我有以下 log4j2 配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="LOG_DIR">${sys:web.root}/logs</Property>
<Property name="ARCHIVE">${LOG_DIR}/archive</Property>
</Properties>
<Appenders>
<Console name="console-log" target="SYSTEM_OUT">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
</Console>
<RollingFile name="paypal-log"
fileName="${LOG_DIR}/paypal.log"
filePattern="${ARCHIVE}/paypal.log.%d{yyyy-MM-dd-hh-mm}.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="5" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.retailstore.paypal" level="info" additivity="false">
<appender-ref ref="paypal-log" level="info"/>
</Logger>
<Root level="error" additivity="false">
<AppenderRef ref="console-log"/>
</Root>
</Loggers>
在我的 (Eclipse) Web 应用程序中,我有一个 com.retailstore.paypal.paypalfunctions 类
private static final Logger logger = LogManager.getLogger(paypalfunctions.class.getName());
...
logger.error("paypal error");
但是Webcontent文件夹下没有logs/paypal.log。它应该出现在哪里?如果我删除记录器,控制台输出似乎可以工作。
带有跟踪的输出:
2016-05-23 19:24:03,231 http-nio-8080-exec-2 TRACE PatternProcessor.getNextTime 返回 2016/05/23-19:25:00.000,nextFileTime=2016/05/23-19:24 :00.000, prevFileTime=2016/05/23-19:14:00.000, current=2016/05/23-19:24:03.230, freq=EVERY_MINUTE 2016-05-23 19:24:03,247 http-nio-8080-exec-2 TRACE DefaultRolloverStrategy.purge() 耗时 15.0 毫秒 2016-05-23 19:24:03,254 http-nio-8080-exec-2 DEBUG RollingFileManager 执行同步 FileRenameAction[${sys:web.root}/logs/paypal.log 到 ${sys:web.root}/logs /archive/paypal.log.2016-05-23-07-14,renameEmptyFiles=false] 2016-05-23 19:24:03,256 http-nio-8080-exec-2 DEBUG RollingFileManager 执行异步 GzCompressAction[${sys:web.root}/logs/archive/paypal.log.2016-05-23-07- 14 到 ${sys:web.root}/logs/archive/paypal.log.2016-05-23-07-14.gz,deleteSource=true]
【问题讨论】:
标签: java tomcat web-applications log4j2