0

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

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

4

1 回答 1

0

是的,这是可能的。您可以使用预定义字段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
于 2021-04-19T11:10:11.180 回答