【发布时间】:2016-10-11 11:16:49
【问题描述】:
我有一个 Spring Boot 应用程序。它从我的文件系统的外部位置提取 log4j.properties;我在 application.yml 文件中指定了这个文件的位置:
...
logging:
config: ${LOG_CONFIG_LOCATION}/log4j.properties
...
因为 log4j.properties 文件会被其他应用程序共享,所以我不能在里面使用
...
log4j.appender.fileAppender.File=log_file_name.log
...
因为...所有应用程序都会记录到同一个文件(可能无法正常工作)
我想做的是利用 application.yml 文件中指定的应用程序名称:
...
spring:
application:
name: my_foo_application
...
并将其日志文件名和位置设置为
${LOG_FILES_LOCATION}/services/${spring.application.name}/${spring.application.name}.log
我在 application.yml 文件中试过这个:
spring:
application:
name: my_foo_application
logging:
config: ${LOG_CONFIG_LOCATION}/log4j.properties
file: ${LOG_FILES_LOCATION}/services/${spring.application.name}/${spring.application.name}.log
这没有效果 - 我没有在我期望的位置看到日志文件。
我还在 application.yml 中注释掉了“logging.file....”并将其添加到 log4j.properties 文件中:
log4j.appender.fileAppender.File=${LOG_FILES_LOCATION}/services/${spring.application.name}/${spring.application.name}.log
它也(毫不奇怪)没有效果
如何做到这一点?
【问题讨论】:
标签: spring logging spring-boot log4j yaml