gpt4 book ai didi

java - 没有输出文件的log4j2?

转载 作者:行者123 更新时间:2023-11-30 08:37:14 24 4
gpt4 key购买 nike

我有以下 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) 网络应用程序中,我有一个 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_MINUTE2016-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]

最佳答案

尝试设置 <Configuration status="trace"> .这将显示 log4j 内部调试语句,让您深入了解 log4j 的配置方式。

以下是在系统属性设置不正确的情况下如何定义默认值:

<Properties>
<Property name="web.root">/path/to/web/root</Property>
<Property name="LOG_DIR">${sys:web.root}/logs</Property>
<Property name="ARCHIVE">${LOG_DIR}/archive</Property>
</Properties>

LOG_DIR现在将查看系统属性,但如果未找到,它将回退到配置中定义的值。

关于java - 没有输出文件的log4j2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37376035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com