gpt4 book ai didi

java - log4j2 不将日志写入文件

转载 作者:行者123 更新时间:2023-12-01 11:54:38 25 4
gpt4 key购买 nike

以下 XML 配置是我的 log4j 配置,我在控制台中看到日志消息,但日志文件是空的,有什么问题吗?

我正在使用 log4j-api-2.1

<Properties>
<Property name="log-path">logs</Property>
</Properties>

<Appenders>

<RollingFile name="file-log" fileName="${log-path}/logtile.log/"
filePattern="${log-path}/logtile-%d{yyyy-MM-dd}.log">

<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
<SizeBasedTriggeringPolicy size="500" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>


<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n" />
</Console>

</Appenders>

<Loggers>
<Logger name="mylogger" level="info" additivity="false">
<appender-ref ref="file-log" level="info" />
<appender-ref ref="Console" level="info" />
</Logger>

<Root level="info">
<appender-ref ref="Console" />
</Root>
</Loggers>

最佳答案

你的代码如何获取Logger实例?假设您的代码如下所示:

Logger log = LogManager.getLogger(com.mycompany.MyClass.class);
log.info("Where is my message?");

请注意,您的记录器的完全限定名称是 "com.mycompany.MyClass" 。此记录器将向根记录器以及名称与 "com.mycompany.MyClass" 匹配的所有命名记录器发送消息。 。以下配置名称将与此完全限定类匹配:

  • <Logger name="com.mycompany.MyClass" ...>
  • <Logger name="com.mycompany" ...>
  • <Logger name="com" ...>

但是,您的配置中的命名记录器仅匹配 "mylogger" ,所以这个记录器不会收到“我的消息在哪里?”记录事件。根记录器将获取事件并将其发送到其附加程序,即控制台。

关于java - log4j2 不将日志写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537183/

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