在我的application.yml中,我得到了:
logging:
config: classpath:log4j2.debug.yml
以及其他一些不同的配置文件.当我启动应用程序时,我得到以下内容:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
如果我只是将log4j2.xml放在配置文件的旁边,那就可以了.所以我认为这是一个我错过了依赖性的东西,或者用log4j2是不可能的?
参考:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-custom-log-configuration说应该可以像我一样尝试?
最佳答案
在我这边,我使用属性文件而不是yaml文件.我想要两个日志文件:一个将所有内容记录到控制台,另一个记录文件.所以我制作了两个log4j2配置文件:log4j2-dev.xml和log4j2-file.xml.
我使用两个Spring配置文件:默认配置文件和一个名为“dev”的配置文件.要切换log4j2配置文件,我创建了一个包含以下内容的文件application.properties:
spring.profiles.active=
logging.config=classpath:log4j2-file.xml
我有另一个属性文件application-dev.properties,它在Spring检测到“dev”配置文件时自动激活.它包含:
logging.config=classpath:log4j2-dev.xml
当我想使用log4j2-dev.xml配置时,我只需在application.properties中添加“dev”作为“spring.profiles.active =”的值.
你可以在这个页面上看看Feiyu Zhou的答案.他使用Yaml配置文件提供解决方案:How to define log4j2 path by application.properties?
当然,您可以随时删除application.properties的属性logging.config,并在log4j2.xml中重命名log4j2-file.xml.它将默认由Log4j2加载,而不需要由Spring配置文件触发