gpt4 book ai didi

java - 使用 log4j2 时日志文件为空

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:42 25 4
gpt4 key购买 nike

我在我的项目中使用 log4j2 是这样的:

    logger.log(Level.ERROR, this.logData);

我的配置文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>


<Configuration status="ERROR" DLog4jContextSelector="org.apache.logging.log4j.core.async.AsyncLoggerContextSelector">
<Appenders>
<!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. -->
<RandomAccessFile name="RandomAccessFile" fileName="C:\\logs\\log1.log" immediateFlush="false" append="false">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
</PatternLayout>
</RandomAccessFile>
</Appenders>
<Loggers>
<Root level="error" includeLocation="false">
<AppenderRef ref="RandomAccessFile"/>
</Root>
</Loggers>

它创建了我的文件,我向其中记录了一些内容,但它仍然是空的。当我试图删除这个文件时,操作系统告诉我它正在使用中(如果应用程序当前正在运行),但即使我停止应用程序,文件仍然是空的。

那么我应该更改哪些设置才能使其正常工作?

最佳答案

我怀疑异步日志没有正确打开。从 beta-9 开始,无法在 XML 配置中打开异步记录器,您必须将系统属性 Log4jContextSelector 设置为 "org.apache.logging.log4j.core.async。 AsyncLoggerContextSelector”

您在日志中看不到任何内容的原因是您的日志消息仍在缓冲区中并且尚未刷新到磁盘。如果您打开异步记录器,日志消息将自动刷新到磁盘。

关于java - 使用 log4j2 时日志文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866565/

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