java - Apache/Tomcat 上的 Log4j 不工作

标签 java apache tomcat log4j

我正在从事 Java Servlet 项目。我正在尝试使用 log4j 记录异常、方法输入和输出等。

我已经添加了 Jars 文件和 log4j.properties 文件。

如果我使用 Main 从测试类测试 Log4j,它会正常工作。但是当我使用 Servlet 项目时,没有创建日志文件。

我正在使用 Apache 和 Tomcat 开发 Eclipse

首先,我认为问题出在 log4j.properties 文件上。我从 src 目录移动到 Webcontent 目录。然后我再次移动到 Webcontent 目录中的 classes 目录。但是我不工作。

这是我的 log4j.properties 文件:

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
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.Append=true

log4j.appender.FILEHIBERNATE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILEHIBERNATE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILEHIBERNATE.datePattern='.'yyyy-MM-dd 
log4j.appender.FILEHIBERNATE.file =logs/Hibernate.log
log4j.appender.FILEHIBERNATE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.FILEHIBERNATE.Threshold=debug
log4j.appender.FILEHIBERNATE.Append=true

log4j.appender.springframework=org.apache.log4j.DailyRollingFileAppender
log4j.appender.springframework.layout=org.apache.log4j.PatternLayout
log4j.appender.springframework.datePattern='.'yyyy-MM-dd 
log4j.appender.springframework.file =logs/springframework.log
log4j.appender.springframework.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.springframework.Threshold=debug
log4j.appender.springframework.Append=true

log4j.appender.fidely=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fidely.layout=org.apache.log4j.PatternLayout
log4j.appender.fidely.datePattern='.'yyyy-MM-dd 
log4j.appender.fidely.file =logs/Fidely.log
log4j.appender.fidely.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fidely.Threshold=info,debug
log4j.appender.fidely.Append=true

log4j.appender.fnet3CustomerAreaMobile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fnet3CustomerAreaMobile.layout=org.apache.log4j.PatternLayout
log4j.appender.fnet3CustomerAreaMobile.datePattern='.'yyyy-MM-dd 
log4j.appender.fnet3CustomerAreaMobile.file =logs/customer_area_interfaces/fidelynet3CustomerAreaMobile.log
log4j.appender.fnet3CustomerAreaMobile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fnet3CustomerAreaMobile.Threshold=debug,info,error
log4j.appender.fnet3CustomerAreaMobile.Append=true

log4j.appender.fnet3CustomerAreaMobileServlet=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fnet3CustomerAreaMobileServlet.layout=org.apache.log4j.PatternLayout
log4j.appender.fnet3CustomerAreaMobileServlet.datePattern='.'yyyy-MM-dd 
log4j.appender.fnet3CustomerAreaMobileServlet.file =logs/customer_area_interfaces/mobile/fidelynet3CustomerAreaMobile.log
log4j.appender.fnet3CustomerAreaMobileServlet.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fnet3CustomerAreaMobileServlet.Threshold=debug,info,error
log4j.appender.fnet3CustomerAreaMobileServlet.Append=true

log4j.logger.net.sf.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.org.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.org.springframework = debug, springframework
log4j.logger.fidely = info, fidely
log4j.logger.fnet3CustomerAreaMobile = debug, info, error, fnet3CustomerAreaMobile
log4j.logger.fnet3CustomerAreaMobileServlet = debug, info, error, fnet3CustomerAreaMobileServlet

log4j.rootLogger = debug

这是控制台:

log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我不知道该怎么做。 你能帮帮我吗?

抱歉我的英语不好

最佳答案

首先将 log4j.properties 放入您的 src 文件夹中。如果你使用 Maven 把它放在 src/main/resources 下。如果 log4j.jar(使用版本 1.2.16)在类路径中,将自动检测该文件。

然后将带有“debug, info, error, ...”的行编辑为“debug”或“info”,因为一次只能有一个日志级别:

log4j.logger.fnet3CustomerAreaMobile = debug, fnet3CustomerAreaMobile

第二个值必须是附加程序的名称。

检查您的 lib 目录中是否有以下 jar:slf4j-api.jar(添加 slf4j)、slf4j-log4j12.jar(从 slf4j 重定向到 log4j)和 < strong>jcl-over-slf4j.jar(从 apache commons-logging 重定向到 slf4j)。 SLF4J 版本也必须兼容,使用 1.6.4 (newest) . SLF4J 是通过添加和删除正确的 jar 自动配置的(遗憾的是)。只添加上面提到的 jar 。

希望这对您有所帮助。

关于java - Apache/Tomcat 上的 Log4j 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251941/

相关文章:

java - Tomcat 日志记录监控 - 识别构建脚本中的错误

java - 如何手动启用 LibGDX 网络?

java - 将对象从 .hprof 文件加载回 Java 程序

java - MongoDB 日期时间插入没有从 java 完美发生

mysql - 提供对 phpmyadmin 页面的读/写访问

node.js - Apache 托管 php 网站和 Node js CORS 代理

java netbeans 和 jprogress bar

apache - 从 HTTP 重定向到 HTTPS 但不用于子域

java - JSP Tomcat7 静态 css 和 js 文件未加载

java - Spring & JNDI : locate resource platform independent