如何在属性文件中向gelf logstash appender添加静态字段? biz.paluch.logging

问题描述

我使用 GELF-logstash appenderlog4j2 作为日志附加程序,将我的应用程序中的日志通过 logstash 发送到 ElasticSearch/Kibana。
在每条日志消息中,我想配置一个静态字段,即我的应用程序部署到的区域,它是从一个环境变量中收集的,该变量因应用程序运行所在的区域而异。

我发现 XML 配置支持静态文字,如下所示:<Field name="fieldName1" literal="your literal value" /> https://logging.paluch.biz/examples/log4j-2.x.html 但如果可能的话,我想保留基于 log4j2.properties 文件的配置,但找不到在那里添加静态文字的文档。

解决方法

是的,这是可能的。您可以使用预定义的字段 facility,或在您的 log4j2.properties 文件中定义任意数量的自定义静态字段:

# required configuration for GELF
appender.gelf.type = Gelf
appender.gelf.name = GELF
appender.gelf.host = ${sys:LOG_HOST}
appender.gelf.port = ${sys:LOG_PORT}

# pre-defined field facility
appender.gelf.facility = a_static_value

# custom static field using environment variable
appender.gelf.environment.type = Field
appender.gelf.environment.name = environment_logging_field_name
appender.gelf.environment.literal = ${sys:ENV_VAR_NAME}

# custom static field with static value
appender.gelf.secondfield.type = Field
appender.gelf.secondfield.name = fieldName
appender.gelf.secondfield.literal = your_value_here