Log4j File is not generating in struts web applica

2019-07-18 05:57发布

问题:

I'm trying to log my web app using Log4j. I've configured everything correctly. Yet log4j logging file is not generating.

Kept log4j.properties file in web-inf/classes and also added log4j.jar to build path.

log4j.properties:

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C\:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=error, file, stdout

回答1:

You might created a possibly right configuration but it useless if the underlying environment isn't use it and this framework as the logging mechanism. Struts2 has also priorities or preferences for the logging frameworks to use. This priorities might change from version to version. As far as I remember from the version 2.3.12 the priority moved toward slf4j. Before the commons-logging was the priority #1.

To fix your issue you should check if you have deployed slf4j libraries then you should remove it so, the commons-logging is still a valid option but #2. You may also configure commons-logging to use log4j using commons-logging.properties. By default it uses log4j if it find the log4j configuration.