ashish.g
ashish.g

Reputation: 588

Hybris: How to create separate log4j log files in the same extension

I need to log some audit logs to a separate file than standard console logs. I tried to create custom logger with the properties added to custom extension

log4j.appender.auditLog=org.apache.log4j.FileAppender
log4j.appender.auditLog.File=/somelogsfile.log
log4j.appender.auditLog.layout=org.apache.log4j.PatternLayout
log4j.appender.auditLog.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n

log4j.category.auditLogger=INFO, auditLog
log4j.additivity.auditLogger=false

Then i have initialised logger as:

Logger LOG2= Logger.getLogger("auditLogger");
LOG2.info("Test");

The logs are output to standard console logs but not to the specified File. What am I missing?

Upvotes: 1

Views: 783

Answers (1)

Yoni
Yoni

Reputation: 1430

Based on the updated question, I did some extra investigation and tested it out on my own system.

Most likely, your hybris version is making use of log4j2 this means that the config should be like this:

log4j2.appender.auditLog.type=File
log4j2.appender.auditLog.name=auditLog
log4j2.appender.auditLog.fileName=${HYBRIS_LOG_DIR}/audit.log
log4j2.appender.auditLog.layout.type=PatternLayout
log4j2.appender.auditLog.layout.pattern=%d [%24F:%t:%L] - %m%n

log4j2.logger.auditLogger.name=auditLogger
log4j2.logger.auditLogger.level=info
log4j2.logger.auditLogger.appenderRefs=auditLogger
log4j2.logger.auditLogger.appenderRef.auditLogger.ref=auditLog
log4j2.logger.auditLogger.additivity=false

I've tested this out on my local system, and using Logger LOG= Logger.getLogger("auditLogger") prints the log statements to the new file

Upvotes: 1

Related Questions