You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Chris M. Hostetter (Jira)" <ji...@apache.org> on 2023/04/25 20:36:00 UTC

[jira] [Updated] (SOLR-16771) "Logging > Level" UI/API does not properly get/update loggers with 'unset' Level

     [ https://issues.apache.org/jira/browse/SOLR-16771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris M. Hostetter updated SOLR-16771:
--------------------------------------
    Attachment: SOLR-16771.patch
        Status: Open  (was: Open)


Attaching a patch to fix all this.

I'm surprised at how long this bug has existed.

What's really wild is that the old {{Log4jWatcher}} handled the {{setLevel(Level.OFF)}} case correctly (although it's {{Log4Info.isSet()}} impl seems like it was equally buggy in terms of returning info about what is/isn't set)



> "Logging > Level" UI/API does not properly get/update loggers with 'unset' Level
> --------------------------------------------------------------------------------
>
>                 Key: SOLR-16771
>                 URL: https://issues.apache.org/jira/browse/SOLR-16771
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Chris M. Hostetter
>            Assignee: Chris M. Hostetter
>            Priority: Major
>         Attachments: SOLR-16771.patch
>
>
> If you're using the Solr Admin UI, or the underlying {{/admin/info/logging}} request handler, the option to 'unset' a log level (so the specified logger will inherit the effective level from it's parent) doesn't actually work.
> This is because the underlying {{Log4j2Watcher}} impl is explicitly calling {{LoggerConfig.setLevel(Level.OFF)}} -- meaning it won't log anything regardless of what it's parent logger setting is.
> The correct behavior is to use {{LoggerConfig.setLevel(null)}}
> While looking into this, I realized that the impls of {{Log4j2Watcher.getAllLoggers()}} and {{Log4j2Watcher.Log4j2Info.isSet()}} are also really bizarre and don't make much sense -- making it impossible to tell in the UI which classes *actually* have a 'set' value in the underlying Log4j2 configuration.
> ( Just because a {{LoggerConfig}} exists for a loggerName, doesn't mean it's {{Level}} is "set" -- but the code currently assumes it does. That's the distinction between {{LoggerConfig.getLevel()}} and {{LoggerConfig.getExplicitLevel()}} -- the later may return null.)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org