问题描述
我正在尝试使用log4j记录我的Web应用程序.我已经正确配置了所有内容.但是Log4j记录文件未生成.
保留log4j.properties在Web-Inf/class中的文件,还添加了log4j.jar log4j.jar构建路径.
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
推荐答案
您可能会创建可能正确的配置,但是如果基本环境不使用它,并且该框架作为日志记录机制,则毫无用处. struts2还具有使用记录框架使用的优先级或偏好.此优先级可能会因版本而变化.据我记得,从版本2.3.12中,优先级向SLF4J移动.在公地登场之前是优先级的1.
要解决问题,您应该检查是否已部署了SLF4J库,则应将其删除,因此,Commons-Logging仍然是有效的选项,但#2.您还可以使用commons-logging.properties配置Commons-Logging使用Log4J.默认情况下,如果找到log4j配置,它使用log4j.
问题描述
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
推荐答案
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.