我在服务器上安装了一组应用程序,我想开始通过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 是启动时提供的命令行选项参数。
现在我只是简单地设置指向同一个Logback配置文件的所有应用程序的 logging.config 属性,并且所有应用程序都开始使用指定的模式将日志发送到所需的服务器。那部分就像一个魅力。
但我唯一的问题是Logback无法确定 server_instance 和 application_name 属性,它们显示为 [server_instance_IS_NOT_DEFINED] < / em>和 [application_name_IS_NOT_DEFINED] 。
我可以使用单个外部配置文件以某种方式实现此目的吗?
答案 0 :(得分:1)
Logback无法查看命令行参数;那些只有春天才能看到。
将这些命令行选项参数移动到系统属性(即“ -Dserver_instance ”和“ -Dapplication_name ”而不是“ - server_instance “和” - application_name “)现在一切都按预期工作。