【问题标题】:Log4j2 monitorInterval performanceLog4j2 monitorInterval 性能
【发布时间】:2017-05-12 14:52:59
【问题描述】:

在 log4j2 中,monitorInterval 属性可用于 Configuration 元素。我试图了解此属性对性能的影响,但在任何地方都找不到任何来源。所以,我对monitorInterval 属性有很多疑问。

  1. 我想知道,通过在Configuration 元素中指定一个小的值作为5(5 秒)和一个大的值比如3000(5 分钟),它对性能有什么影响?

  2. 究竟会发生什么?这是否意味着,每次经过指定的时间间隔时,它都会自动检测?

  3. 有没有办法通过配置文件(XML、JSON、YAML、PROPERTIES)强制 log4j2立即重新加载配置,而不是编程重新配置?

【问题讨论】:

    标签: java performance logging log4j2


    【解决方案1】:

    过去的情况是对性能的影响很小。具体来说,Log4j2 在处理日志事件时偶尔会检查配置文件的lastModified 时间。它很聪明,不要在每个事件上都这样做,但只有在自上次检查以来已经过去了足够的时间:每 monitorInterval 秒一次。

    从 Log4j 2.5 开始就不一样了:有一个观察者后台线程偶尔会唤醒并检查配置文件的lastModified 时间。所以现在对日志记录性能没有影响。 (此更改的原因实际上不是性能而是准确性:如果在记录某些内容之前,以前的文件不会翻转,这可能比翻转时间晚得多。)有关详细信息,请参阅https://issues.apache.org/jira/browse/LOG4J2-1202

    要强制重新加载配置,除了触摸配置文件和编程重新配置之外,您还可以使用 JMX 接口。还可以查看 log4j-core 中的 Configurator 类。它有几种导致重新配置的方法。

    【讨论】:

    • 那么手册中的 30 秒真的是大材小用吗?我可以将它设置为 3 或 5 没有问题?
    猜你喜欢
    • 2023-03-13
    • 2014-11-26
    • 1970-01-01
    • 2018-09-20
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2018-08-17
    相关资源
    最近更新 更多