Java 如何在我的web项目中配置log4J

Java 如何在我的web项目中配置log4J,java,tomcat,logging,log4j,Java,Tomcat,Logging,Log4j,这是我的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.RollingFileApp

这是我的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中。我正在使用TomcatWeb服务器。 在com.smsoffice.launch中,我有WebApp.java,我以这种方式使用log4j:

private static final Logger logger = Logger.getLogger(WebApp.class);
logger.info("Initializing web application");
启动应用程序log4j时,在控制台中仅写入以下内容:

log4j:WARN找不到记录器(org.springframework.context.support.ClassPathXmlApplicationContext)的追加器。 log4j:警告请正确初始化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找不到此文件???

您可能希望在resources文件夹中添加以下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
但请尝试更改文件位置


希望这有助于

在log4j.properties文件中,您尚未定义要追加的内容,即log4j.appender.stdout.Target=System.out

您只需查找任何标准文件,就可以得到它


您将属性文件放置在何处?

尝试在文件顶部添加“log4j.rootLogger=DEBUG,stdout,file”可能是它的副本而不是副本!!!没有结果。。这是错误:log4j:error LogMananger.repositorySelector为null,可能是由于使用NOPLoggerRepository重新加载类时出错。log4j:WARN找不到记录器(org.springframework.context.support.ClassPathXmlApplicationContext)的追加器。log4j:WARN请正确初始化log4j系统。这是我的文件:/sms office webapp/src/main/resources/log4j.properties。我试图设置目标,但无法再次运行。您的应用程序是web应用程序还是独立java应用程序?我的应用程序是maven appAre的web应用程序的一部分,您使用的是Log4j 1.2.15吗?尝试将其升级到1.2.17或编辑以下内容。CATALINA_OPTS=-Dorg.apache.CATALINA.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=错误最近我将其更改为1.2.17