Expand my Community achievements bar.

How to change the log level? Adding a logManager config file results in duplicate log entries.

Avatar

Level 9

out of the box, all java code logs written to error.log are duplicated.

The culprit is having your own logger format:

/myapp.ui.config/src/main/content/jcr_root/apps/myapp/osgiconfig/config.author.local/org.apache.sling.commons.log.LogManager.factory.config~myapp.cfg.json

e.g.

 

 

{
  "org.apache.sling.commons.log.pattern": "{0,date,yyyy-MM-dd HH:mm:ss.SSS} {4} [{3}] {5}",
  "org.apache.sling.commons.log.names": [
    "com.myorg.myproj.aem"
  ],
  "org.apache.sling.commons.log.level": "debug",
  "org.apache.sling.commons.log.file": "logs/error.log",
  "org.apache.sling.commons.log.additiv": "true"
}

 

 

If you remove this file, you get one copy of each log line, but only for info, and with some default format we want to change.

So if adding our own logger config results in duplicate logs, how do we modify the existing one, which is not in any of the osgi config files in our source code?

We cant edit anything via the osgi manager web UI, as this would only change for one person, not everyone.

In addition, the json format for logs doesnt work with setting the MDC values in a filter. How do we get these into the logs?

            MDC.put("APPID", APPID);

            MDC.put(CORRELATION_HEADER, token);

 

1 Reply

Avatar

Level 9

The solution for the duplicate entries was to change 

  "org.apache.sling.commons.log.additiv": "true"

To

  "org.apache.sling.commons.log.additiv": "false"

 However have not found a solution to include the MDC vars yet.