Log4j2 MonitorInterval性能

Sha*_*zad 3 java performance logging log4j2

在log4j2中,monitorInterval属性可用于Configuration元素。我试图阅读有关此属性对性能的影响,但在任何地方都找不到任何来源。因此,我对monitorInterval属性有多个疑问。

  1. 我想知道,通过在元素中指定一个较小的值5(5秒)和一个较大的值3000(例如5分钟)会对性能产生什么影响Configuration

  2. 到底发生了什么?这是否意味着,每经过指定的时间间隔,它将自动检测一次?

  3. 有没有什么办法强迫log4j2重新加载配置马上通过配置文件(XML,JSON,YAML,性能),而不是程序重新配置?

Rem*_*pma 6

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

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

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