“log4j: Error Could not find value for key log4j.appender.SQL_APPENDER” 的可能原因是什么?

6
我想知道为什么在部署我的网站应用程序时会出现这个错误。
log4j: Error Could not find value for key log4j.appender.SQL_APPENDER

这里是我的log4j.properties文件。

log4j.rootLogger=error, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=application.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false

我需要在服务器端做一些配置吗?我正在Tomcat 7服务器上运行我的应用程序。我已经在pom.xml文件中添加了这个依赖项:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

1
其他和我处于相同情况的人,请注意在类路径上潜伏的其他版本的log4j.properties文件。我的情况是,我有一个不同的文件(可能是用于测试),其中设置错误,它是罪魁祸首。花了一些时间才意识到这一点。 - asgs
2个回答

10

你需要定义log.appender.SQL_APPENDER,因为你在该行中对其进行了赋值。

 log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER

你正在定义 appender R,但没有 SQL_APPENDER


谢谢SJuan,我实际上对Web应用程序一点也不熟悉,你能否请解释一下如何定义SQL_APPENDER? - Rami
1
这不是Web应用程序的问题,而是log4j配置的问题。最简单的方法是将log.appender.R的定义复制到log.appender.SQL_APPENDER中(将FILE更改为不同的目标)。 - SJuan76
@SJuan76 - 我遇到了类似的问题。到目前为止我没有得到任何答案。你能否在 https://stackoverflow.com/questions/23281667/error-cannot-log-with-log4j 帮助我一下? - Erran Morad

1
SJuan提到了,你需要定义。

log.appender.SQL_APPENDER

这通常是这样完成的:

and that is done something like this :

log4j.appender.SQL_APPENDER=org.apache.log4j.RollingFileAppender

当你在做这个的时候,也可以顺便添加以下内容:

log4j.appender.SQL_APPENDER.File=c:/EC_sql.log log4j.appender.SQL_APPENDER.MaxFileSize=1000KB log4j.appender.SQL_APPENDER.MaxBackupIndex=62 log4j.appender.SQL_APPENDER.layout=org.apache.log4j.PatternLayout log4j.appender.SQL_APPENDER.layout.ConversionPattern=[%d] %5p [%t] (%F:%L) - %m%n

希望这能对某些人有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接