Java Log4j2监视区间性能

Java Log4j2监视区间性能,java,performance,logging,log4j2,Java,Performance,Logging,Log4j2,在log4j2中,monitorienterval属性可用于Configuration元素。我试图了解此属性对性能的影响,但在任何地方都找不到任何来源。因此,我有许多关于monitorInterval属性的问题 我想知道,在配置元素中指定一个小值为5(5秒)和一个大值(比如说3000(5分钟)会对性能产生什么影响 到底发生了什么?这是否意味着,每次经过指定的时间间隔时,它都会自动检测 有没有办法通过配置文件(XML、JSON、YAML、属性)而不是编程重新配置来强制log4j2立即重新加载配置

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

  • 我想知道,在
    配置
    元素中指定一个小值为
    5
    (5秒)和一个大值(比如说
    3000
    (5分钟)会对性能产生什么影响

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

  • 有没有办法通过配置文件(XML、JSON、YAML、属性)而不是编程重新配置来强制log4j2立即重新加载配置


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

    与Log4j 2.5不同的是:有一个watcher后台线程偶尔会唤醒并检查配置文件的
    lastModified
    时间。所以现在对日志记录性能没有影响。(此更改的原因实际上不是性能,而是准确性:以前的文件在记录某个内容之前不会滚动,这可能比滚动时间晚得多。)有关详细信息,请参阅


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

    那么手册中的30秒真的是太浪费了?我可以将它设置为3或5而没有问题?