Theis是我的log4j.properties文件:
log4j.rootCategory=INFO, R
log4j.logger.com.smsoffice=DEBUG
#log4j.logger.org.apache.wicket=DEBUG
#log4j.logger.org.hibernate=DEBUG
#log4j.additivity.org.hibernate.SQL=false
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/webapps/ROOT/logs/smsoffice.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=20
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss,SSS} %p %C.%M:%L - %m%n
此文件位于src / main / resources中。我正在使用tomcat web服务器。 在com.smsoffice.launch中,我有WebApp.java,我正在以这种方式使用log4j:
private static final Logger logger = Logger.getLogger(WebApp.class);
logger.info("Initializing web application");
当我启动应用程序时,log4j只在控制台中写入:
log4j:WARN找不到logger(org.springframework.context.support.ClassPathXmlApplicationContext)的appender。 log4j:WARN请正确初始化log4j系统。
我已登录$ {catalina.home} /webapps/ROOT/logs/smsoffice.log但在我调试时它没有显示在控制台中。
任何人都知道我错过了什么?
编辑:
这是完整的日志:
log4j: Trying to find [C:\projects\smsofficenew\app\sms-office-webapp\src\main\resources\log4j.properties] using context classloader WebappClassLoader
context: /ROOT
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@1489c411
.
log4j: Trying to find [C:\projects\smsofficenew\app\sms-office-webapp\src\main\resources\log4j.properties] using WebappClassLoader
context: /ROOT
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@1489c411
class loader.
log4j: Trying to find [C:\projects\smsofficenew\app\sms-office-webapp\src\main\resources\log4j.properties] using ClassLoader.getSystemResource().
log4j: Could not find resource: [C:\projects\smsofficenew\app\sms-office-webapp\src\main\resources\log4j.properties].
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
但是资源[C:\ projects \ smsofficenew \ app \ sms-office-webapp \ src \ main \ resources \ log4j.properties]就在这里!所以真正的问题是为什么log4j找不到这个文件???
答案 0 :(得分:0)
您可能希望在资源文件夹
中添加以下log4j.properties文件# Root logger option
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
log4j.appender.file.File=${catalina.home}/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
尝试通过
更改文件位置希望这有帮助
答案 1 :(得分:0)
在log4j.properties文件中,您尚未定义要追加的内容,即log4j.appender.stdout.Target = System.out。
你可以找到任何标准文件,你就可以得到它。
您准确放置属性文件的位置?