Fryderyk Wysocki created SLING-7529:

             Summary: Log message layouts are not property inherited
                 Key: SLING-7529
             Project: Sling
          Issue Type: Bug
          Components: Commons
    Affects Versions: Commons Log 5.1.2
            Reporter: Fryderyk Wysocki

Steps to reproduce on AEM 6.3 with Apache Sling Commons Log 5.1.2:
1. Create Logger Configuration for Logger "my.project", log file "error.log", 
log level 'Information" and message pattern "My project: \{5}"
2. Create an Slf4J logger for class my.project.Sample and use it to infolog 
message "test foo"
3. Change the configuration created in step 1 - update logger to 
4. Use the logger created in step 2 to infolog message "test bar"

Expected result:
5. error.log file would contain messages "My project: test foo" and "My 
project: test bar"

Actual result:
5. error.log file contains the message "test foo" in the format configured as 
the default format, but also contains the message "My project: test bar" - the 
second message, in the appropriate format.

Checking the source code, I've discovered the following in class 
'LoggerSpecificEncoder', starting from line 47:
    private Layout<ILoggingEvent> getLayout(String loggerName) {
        // TODO Handle layout inheritance wrt logger names
        Layout<ILoggingEvent> layout = layoutByCategory.get(loggerName);
        if (layout == null) {
            layout = defaultLayout;
        return layout;
Which means that, unless the configuration is created for the exact logger 
name, the default one will be used - the functionality is not broken, but 
simply not implemented.

This message was sent by Atlassian JIRA

Reply via email to