how logging works in AEM for java source code

Avatar

Avatar

TB3dock

Avatar

TB3dock

TB3dock

05-04-2021

There are several reference pages for configuration of various different logging systems in AEM (e.g. this and this) , but I cant find anything on how to create/inject and use them.  

In the wknd project, we see this:

 

 

private static final Logger log = LoggerFactory.getLogger(ImageListImpl.class);
:
log.warn("Could not locate the AEM WCM Core Components List SlingModel via this component's ResourceSuperType. Returning an empty list.");

 

 

Is this best practice?  It seems to be using slf4j.  Is this the AEM system wide default?
What logging injection/usage do people recommend?
How do we switch log levels etc?  Can this be done at run time?
 

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

salamswapnil

Avatar

salamswapnil

salamswapnil

05-04-2021

Hi @TB3dock 

 

Yes, the snippet you have shared is the standard practice for logging and it's slf4j.

You can create logs specific to your application and change its level here.

You can find more info about logging here: 

https://experienceleague.adobe.com/docs/experience-manager-64/deploying/configuring/configure-loggin...

 

Thanks

Swapnil 

Answers (1)

Answers (1)

Avatar

Avatar

asutosh_j3

Avatar

asutosh_j3

asutosh_j3

05-04-2021

Hi @TB3dock 

You are already referring the correct documents for AEM Logs.

https://experienceleague.adobe.com/docs/experience-manager-65/deploying/configuring/configure-loggin...

http://www.sgaemsolutions.com/2017/04/aem-logs-in-detail-part-1.html

http://www.sgaemsolutions.com/2019/12/aem-logs-in-detail-part-2.html

https://experienceleague.adobe.com/docs/experience-manager-64/administering/operations/troubleshooti...

https://www.royalcyber.com/blog/portal/custom-logging-with-aem-logger/

 

By default AEM uses slf4j log support and it's recommended by Adobe as well.

 

Log levels can be updated using "Apache Sling Logging Logger Configuration" which is a factory configuration and can be configured based on the need.

 

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
org.apache.sling.commons.log.file="logs/something.log"
org.apache.sling.commons.log.level="debug"
org.apache.sling.commons.log.names="[com.something.abc.core]"
org.apache.sling.commons.log.pattern="\{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}"/> 

 

Hope this helps!

Thanks!