[ https://issues.apache.org/jira/browse/LOG4J2-945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14343120#comment-14343120 ]
Stefan Wehner commented on LOG4J2-945: -------------------------------------- I understand that the idea of the ivar was to improve performance, so that the max level doesn't have to be calculated for each event. I'm not sure if it's such a big deal in this case, though. I'd thought of making listener changes through the StatusLogger so it'd be aware of all changes, but I'm not sure if it's worth the hassle - and it would probably still allow people to modify listeners without notifying the logger. Maybe another option would be using the StatusLogger's level more like that of a normal logger level instead of calculating the maximum level of all appenders - I'm not sure what the original idea behind this behavior is and if there is a reason to keep it that way... [~ralph.go...@dslextreme.com] > Reconfiguring statusLogger to a higher level doesn't work correctly > ------------------------------------------------------------------- > > Key: LOG4J2-945 > URL: https://issues.apache.org/jira/browse/LOG4J2-945 > Project: Log4j 2 > Issue Type: Bug > Components: Core > Affects Versions: 2.1 > Reporter: Stefan Wehner > Priority: Minor > Attachments: remove_listeners_level.patch > > > When reconfiguring log4j and changing the level of the status logger to a > higher level - e.g. from WARN to DEBUG, it doesn't work correctly. > Steps to reproduce: > # Configure from log4j2.xml containing: > {code} > <Configuration status="WARN" monitorInterval="5"> > ... > {code} > # With the app running, change status to a higher level: > {code} > <Configuration status="DEBUG" monitorInterval="5"> > ... > {code} > # Observe that the log config is reloaded, but no debug messages for the > status logger appear. > From what I've seen this is because the {{StatusConfiguration.initialize()}} > reconfigures the listeners' level > [StatusConfig:193|https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=blob;f=log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java;h=4d2ee51b4cf5dcb6f62029fe307093a759bf0af7;hb=HEAD#l193] > But it doesn't update the {{listenersLevel}} field that the {{StatusLogger}} > uses for checking if the logger is enabled (I understand this should be the > maximum of all of the listener's levels) > [StatusLogger:273|https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=blob;f=log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java;h=39d447d9793ca08a7d86b9eaaf6ef3dd406cf9a2;hb=HEAD#l273] > So in this case the listenersLevel is still at WARN, even though the console > listener has a DEBUG level, and all the log messages are ignored because > isEnabled(DEBUG) returns false. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org