java - 错误在 tomcat 上部署期间找不到键 log4j.appender.error 的值

标签 java maven tomcat

如果我右键单击服务器并在服务器上运行,我的代码工作正常,但是当我尝试将它部署到 tomcat 上并尝试运行它时,出现以下错误

log4j.properties 文件:

log4j.logger.Controller = INFO,error,stdout
log4j.logger.Client = INFO,error,stdout
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: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.error
log4j:ERROR Could not instantiate appender named "error".
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

pom.xml :

<groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.5</version>
        </dependency>
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.3</version>
        </dependency>
<dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>

最佳答案

问题出在这两行:

log4j.logger.Controller = INFO,error,stdout
log4j.logger.Client = INFO,error,stdout

您只能将一个记录器级别指定为第一个参数(在本例中为 INFO),然后接下来的两个参数将被视为用于该记录器的附加程序名称(在本例中为错误和标准输出)。因为不存在名为 error 的 appender,所以您得到的是您报告的错误。

检查这个 ( https://logging.apache.org/log4j/1.2/manual.html ),它显示了一个将记录器分配给两个不同的附加程序的示例,这看起来很像您的代码。希望这将有助于解释为什么 log4j 在您的应用程序中寻找名为 error 的附加程序。

Here is another configuration file that uses multiple appenders.

log4j.rootLogger=debug, stdout, R

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

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

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

log4j.appender.R.MaxFileSize=100KB

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

关于java - 错误在 tomcat 上部署期间找不到键 log4j.appender.error 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760493/

相关文章:

java - 等效于没有弹出窗口和一个 optional 的 Android 单选按钮?

java - 在 eclipse 中运行独立的 java 可执行文件会导致 NoClassDefFounderror

具有不同子版本的maven父pom

rest - Apache Camel + Spring( war )+ Tomcat + REST

sql-server - Tomcat 未连接到 SQL Server Express

java - 返回 boolean 值的方法

Java MS Word 和 PDF 转换为图像 (png/jpg)

java - 在 Java 中使用大量对象是否存在性能问题

java - Maven 下载的损坏的 jar

tomcat - Tomcat 的独立部署不起作用