【问题标题】:monitorInterval is not working in log4j2monitorInterval 在 log4j2 中不起作用
【发布时间】:2014-11-26 21:41:38
【问题描述】:

我尝试在我的应用程序中使用 log4j2 来允许在运行时动态重新配置日志级别。但我无法成功获得 monitorInterval 工作。控制台和文件附加程序工作正常。这是我的 log4j2.xml,

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="5">
<Appenders>
<Console name="consoleAppender" target="SYSTEM_OUT">
  <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<File name="fileAppender" fileName="learning.log" append="true">
  <PatternLayout pattern="%t %-5p %c{2} - %m%n"/>
</File>
</Appenders>

<Loggers>
<Root level="error">
  <!--  <AppenderRef ref="consoleAppender"/>-->
  <AppenderRef ref="fileAppender"/>
</Root>
</Loggers>  
</Configuration>

请帮助查找问题。谢谢!

【问题讨论】:

    标签: java logging log4j log4j2 error-logging


    【解决方案1】:

    如果您在 Eclipse 中运行时遇到此问题,请注意 Eclipse 会将您的 log4j2.xml 文件从 ${project}/src 复制到 ${project}/bin。 Log4j 将在类路径中加载 log4j2.xml 文件,即 ${project}/bin。如果您现在修改 src/ 文件夹中的其他配置文件,则在 Eclipse 检测到需要重新构建之前,可能不会将其复制到 bin/ 文件夹。也许只有对 .java 文件的更改才会触发重建。

    因此,修改 src/log4j2.xml 不会“起作用”,因为 log4j 从 bin/log4j2.xml 加载了配置。

    如果指定了配置文件位置,则不会混淆:您和log4j对配置文件位置的理解相同。

    如果这不能解决问题,请尝试使用系统属性-Dlog4j.debug 运行:这将在控制台上显示内部 log4j2 日志记录,包括从哪个位置加载配置。另请参阅FAQ

    【讨论】:

    • 您好,我的应用程序部署在 Jboss Eap 6.4 上。我已经修改了应用程序在运行时可以看到该文件的目录中的 log4j2.xml 文件。但是它仍然无法正常工作。请指教。
    • 尝试使用系统属性 -Dlog4j.debug 运行:这将在控制台上显示内部 log4j2 日志记录,包括从哪个位置加载配置。另请参阅logging.apache.org/log4j/2.x/faq.html#troubleshooting
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2018-03-15
    • 2017-02-06
    • 1970-01-01
    相关资源
    最近更新 更多