spring boot使用log4j记录到具有共享的外部log4j配置的外部文件

时间:2016-06-10 13:05:08

标签: spring logging spring-boot log4j yaml

我有一个春季启动应用程序。它从我文件系统中的外部位置提取log4j.properties;我在application.yml文件中指定了这个文件的位置:

...
logging:
  config: ${LOG_CONFIG_LOCATION}/log4j.properties
...

因为log4j.properties文件将由其他应用程序共享,在其中,我无法使用

...
log4j.appender.fileAppender.File=log_file_name.log
...

因为...所有应用程序都会记录到同一个文件中(可能不会使用io的b / c)

我想要做的是利用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

这没有效果 - 我没有在我期待的位置看到日志文件。

我还评论了' logging.file ....'在application.yml&将其添加到log4j.properties文件中:

log4j.appender.fileAppender.File=${LOG_FILES_LOCATION}/services/${spring.application.name}/${spring.application.name}.log

它也(毫不奇怪)没有效果

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

尝试添加以下行。

log4j.appender.fileAppener=org.apache.log4j.RollingFileAppender