Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

how logging works in AEM for java source code

TB3dock
Level 7
Level 7

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?
 
1 Accepted Solution
salamswapnil
Correct answer by
Level 2
Level 2

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 

View solution in original post

1 Reply
salamswapnil
Correct answer by
Level 2
Level 2

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 

View solution in original post

TB3dock
Level 7
Level 7

Thanks! I see there is a line for com.adobe.aem.guides.wknd, to allow the level to change.

asutosh_jena
Community Advisor
Community Advisor

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!