【问题标题】:spring boot logging using log4j to external file with shared, external log4j configurationspring boot 使用 log4j 将日志记录到具有共享的外部 log4j 配置的外部文件
【发布时间】: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


    【解决方案1】:

    尝试添加以下行。

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

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2011-07-24
      • 1970-01-01
      • 2015-11-28
      • 2017-05-05
      • 1970-01-01
      • 2020-02-21
      • 2017-01-17
      相关资源
      最近更新 更多