Spring Boot 和 Log4j 问题

标签 spring tomcat spring-boot log4j

我的 log4j 设置如下。当我作为启动应用程序运行时,日志正确写入控制台、debug.log 和 dump.log。下面是我在我的程序中所做的在控制台和 debug.log 中编写日志

static final Logger LOG = Logger.getLogger(EnvironmentLoader.class);    
LOG.info("blah blah!");

下面是我在程序中将日志写入dump.log

private static final Logger DUMP_LOG = Logger.getLogger("dumpLogger");
DUMP_LOG.info("blah blah!");

如果我作为 Spring Boot App 运行,两者都可以正常工作。如果我将其打包为 war 并在 tomcat 中运行,DUMP_LOG 会正确写入 dump.log,但 LOG 不会写入控制台或 debug.log。我想知道为什么。

log4j.rootLogger=INFO, stdout, debugLog

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p %c.%M:%L - %m%n
log4j.appender.stdout.Target=System.out

log4j.appender.debugLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debugLog.Append=true
log4j.appender.debugLog.DatePattern='.'dd-MM-yyyy
log4j.appender.debugLog.File=${catalina.base}/logs/debug.log
log4j.appender.debugLog.MaxFileSize=10MB
log4j.appender.debugLog.encoding=UTF-8
log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
log4j.appender.debugLog.layout.ConversionPattern=%d %-5p %c.%M:%L - %m%n

log4j.category.debugLogger=DEBUG, debugLog
log4j.additivity.debugLogger=false

log4j.appender.dumpLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dumpLog.Append=true
log4j.appender.dumpLog.DatePattern='.'dd-MM-yyyy
log4j.appender.dumpLog.File=${catalina.base}/logs/dump.log
log4j.appender.dumpLog.MaxFileSize=10MB
log4j.appender.dumpLog.encoding=UTF-8
log4j.appender.dumpLog.layout=org.apache.log4j.PatternLayout
log4j.appender.dumpLog.layout.ConversionPattern=%d - %m%n

log4j.category.dumpLogger=DEBUG, dumpLog
log4j.additivity.dumpLogger=false

最佳答案

以下依赖项解决了该问题。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

关于Spring Boot 和 Log4j 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791003/

相关文章:

java - 如何防止Eclipse+Tomcat运行当前类而不是项目(Vaadin)

java - 将设备连接到本地 Tomcat

maven - Maven下多个spring boot应用的端到端集成测试

unit-testing - 为什么单元测试尝试在 Spring Boot 中的 Controller 特定单元测试中查找其他 bean

java - Spring Boot 微服务嵌入式 tomcat 与外部 tomcat

java - com.fasterxml.jackson.core.JsonParseException : Unrecognized token

java - isAnonymous() 和 isAuthenticated() 在错误页面上都返回 false

java - jBPM + Spring 事务共享和范围

Java Spring : need wildcard @RequestMapping to match everything BUT/images/* with access to raw URL

java - Eclipse 中的 Tomcat 错误 404 但它以前工作过