Spring Boot 和 Logback logging.config 具有 spring 属性占位符的文件
Spring Boot and Logback logging.config file with spring properties placeholders
我在服务器上安装了一组应用程序,我想开始通过 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_instance 和 application_name 是启动时提供的命令行选项参数。
现在我只需将我所有应用程序的 logging.config 属性 设置为指向同一个 Logback 配置文件,然后所有应用程序开始发送使用指定的模式将日志记录到所需的服务器。那部分就像一个魅力。
但我遇到的唯一问题是 Logback 无法确定 server_instance 和 application_name 属性,它们分别显示为 [server_instance_IS_NOT_DEFINED] 和 [application_name_IS_NOT_DEFINED]。
我可以使用单个外部配置文件以某种方式实现吗?
Logback 无法查看命令行参数;那些只有 Spring 看到。
将这些命令行选项参数移至系统属性(即“-Dserver_instance”和“-Dapplication_name”而不是“--server_instance”和“--application_name”)现在一切都按预期工作。
我在服务器上安装了一组应用程序,我想开始通过 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_instance 和 application_name 是启动时提供的命令行选项参数。
现在我只需将我所有应用程序的 logging.config 属性 设置为指向同一个 Logback 配置文件,然后所有应用程序开始发送使用指定的模式将日志记录到所需的服务器。那部分就像一个魅力。
但我遇到的唯一问题是 Logback 无法确定 server_instance 和 application_name 属性,它们分别显示为 [server_instance_IS_NOT_DEFINED] 和 [application_name_IS_NOT_DEFINED]。
我可以使用单个外部配置文件以某种方式实现吗?
Logback 无法查看命令行参数;那些只有 Spring 看到。
将这些命令行选项参数移至系统属性(即“-Dserver_instance”和“-Dapplication_name”而不是“--server_instance”和“--application_name”)现在一切都按预期工作。