如何在我的Web项目中配置log4J

时间:2015-07-13 07:45:55

标签: java tomcat logging log4j

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找不到这个文件???

2 个答案:

答案 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。

你可以找到任何标准文件,你就可以得到它。

您准确放置属性文件的位置?