Felix Meschberger created SLING-6220:
----------------------------------------

             Summary: [log] Perform initial configuration from framework 
properties synchronously
                 Key: SLING-6220
                 URL: https://issues.apache.org/jira/browse/SLING-6220
             Project: Sling
          Issue Type: Improvement
          Components: Commons
            Reporter: Felix Meschberger


{{LogbackManager}} uses {{LogConfigManager}} to support traditional logging 
configuration including initial (global) configuration from framework 
properties. Once everything is setup the {{LogbackManager.configChanged()}} 
method is called to initiate logging for the first time.

Unfortunately {{configChanged}} is processed asynchronously leading to initial 
configuration to be applied only later - in some special use cases even *after* 
the complete application has already started.

I proposed to replace the call to {{configChanged()}} by a call to 
{{configure()}} which actually implements the configuration change *before* the 
{{started}} flag is set to {{true}}.

Proposed patch:

{code}
Index: 
src/main/java/org/apache/sling/commons/log/logback/internal/LogbackManager.java
===================================================================
--- 
src/main/java/org/apache/sling/commons/log/logback/internal/LogbackManager.java 
    (Revision 1767024)
+++ 
src/main/java/org/apache/sling/commons/log/logback/internal/LogbackManager.java 
    (Arbeitskopie)
@@ -167,8 +167,13 @@
         registerWebConsoleSupport();
         registerEventHandler();
 
+        // initial configuration must be done synchronously (aka immediately)
+        addInfo("LogbackManager: BEGIN initial configuration");
+        configure();
+        addInfo("LogbackManager: END initialconfiguration");
+
+        // now open the gate for regular configuration
         started = true;
-        configChanged();
     }
 
     public void shutdown() {
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to