【问题标题】:Spring Boot and Logback logging.config file with spring properties placeholders带有弹簧属性占位符的 Spring Boot 和 Logback logging.config 文件
【发布时间】:2017-08-23 15:02:20
【问题描述】:

我在服务器上安装了一组应用程序,我想开始通过 syslog 将日志发送到远程 Logstash 服务器。为此,我创建了一个外部 Logback 配置文件,其中包含一个指向所需远程服务器的 SyslogAppender。

由于多个应用程序将登录到同一台服务器,我已将日志模式更改为如下:

<suffixPattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [${server_instance}] [${application_name}] %p ${PID:- } --- [%15.15t] %logger : %m%n</suffixPattern>

其中 server_instanceapplication_name 是启动时提供的命令行选项参数。

现在我只需将所有应用程序的 logging.config 属性设置为指向同一个 Logback 配置文件,然后所有应用程序都开始使用指定的模式将日志发送到所需的服务器。这部分就像一个魅力。

但我遇到的唯一问题是 Logback 无法确定 server_instanceapplication_name 属性,它们显示为 [server_instance_IS_NOT_DEFINED] 和 [application_name_IS_NOT_DEFINED] 分别。

我可以使用单个外部配置文件以某种方式实现这一点吗?

【问题讨论】:

    标签: spring-boot logback syslog


    【解决方案1】:

    Logback 无法看到命令行参数;那些只有Spring才能看到。

    将这些命令行选项参数移至系统属性(即“-Dserver_instance”和“-Dapplication_name”而不是“--server_instance” >”和“--application_name”),现在一切都按预期工作了。

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 2021-09-16
      • 2011-10-23
      相关资源
      最近更新 更多