Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Log4j2进行Spring引导日志记录_Spring_Spring Boot_Log4j2 - Fatal编程技术网

使用Log4j2进行Spring引导日志记录

使用Log4j2进行Spring引导日志记录,spring,spring-boot,log4j2,Spring,Spring Boot,Log4j2,编写简单的POC来证明和测试Spring Boot和log4j2的兼容性。一旦成功,我将把它转移到真正的应用程序 请参考我的POC源代码: 我从以下网站了解/了解Spring版本和log4j2兼容性: 找到并尝试了此处描述的建议: 但仍然不起作用。问题是应用程序日志和Spring日志都只打印到控制台 请参考以下maven依赖项(来自POC): org.springframework.boot SpringBootStarterWeb org.springframework.boot sp

编写简单的POC来证明和测试Spring Boot和log4j2的兼容性。一旦成功,我将把它转移到真正的应用程序

请参考我的POC源代码:

我从以下网站了解/了解Spring版本和log4j2兼容性:

找到并尝试了此处描述的建议:

但仍然不起作用。问题是应用程序日志和Spring日志都只打印到控制台

请参考以下maven依赖项(来自POC):


org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
org.apache.logging.log4j
log4j型芯
2.6.2
org.apache.logging.log4j
log4japi
2.6.2

如果我不排除Spring的logback,也不添加boot-starter-log4j2,那么应用程序日志将打印到应用程序文件中,但Spring日志根本不会打印。我感觉到了依赖性的问题。感谢您的帮助。

根据Spring Boot文档,可以使用
logging.config
属性指定日志配置文件的位置。我注意到您的start.sh脚本正在传递
-Dlog4j.configurationFile
。通常,这对于直接的log4j2集成来说已经足够了,但是Spring引导使用
logging.config

切换到此状态后,它会写入日志文件:

java -Dlogging.config=/share/LogPOC/log4j2.xml -cp poc.jar:libs/* com.poc.logger.Application

根据Spring引导文档,可以使用
logging.config
属性指定日志配置文件的位置。我注意到您的start.sh脚本正在传递
-Dlog4j.configurationFile
。通常,这对于直接的log4j2集成来说已经足够了,但是Spring引导使用
logging.config

切换到此状态后,它会写入日志文件:

java -Dlogging.config=/share/LogPOC/log4j2.xml -cp poc.jar:libs/* com.poc.logger.Application

今天尝试了这个,得到了控制台的错误消息:“Error StatusLogger找不到log4j2配置文件。使用默认配置:只将错误记录到控制台。”但是所有这些都很好。我在application.log、Spring-framework.log和other.log中看到应用程序日志。谢谢你的帮助!根据log4j文档,它需要'-Dlog4j.configurationFile',不确定它是否正确初始化(错误消息解释相同)。今天尝试此操作后,控制台收到错误消息:“error StatusLogger未找到log4j2配置文件。使用默认配置:仅将错误记录到控制台。”但所有操作都很好。我在application.log、Spring-framework.log和other.log中看到应用程序日志。谢谢你的帮助!根据log4j文档,它需要'-Dlog4j.configurationFile',不确定它是否正确初始化(错误消息对此进行了解释)。