日志配置选项

编辑

log_level

编辑

设置代理的日志级别。此选项不区分大小写。

CRITICAL 是一个有效的选项,但它被映射到 ERRORWARNWARNING 等效;OFF 仅从 1.16.0 版本开始可用。

dynamic config

有效选项:OFFERRORCRITICALWARNWARNINGINFODEBUGTRACE

默认值 类型 动态

INFO

LogLevel

true

Java 系统属性 属性文件 环境变量

elastic.apm.log_level

log_level

ELASTIC_APM_LOG_LEVEL

log_file

编辑

设置代理日志的路径。特殊值 _AGENT_HOME_ 是 elastic-apm-agent.jar 所在文件夹的占位符。例如:_AGENT_HOME_/logs/elastic-apm.log

设置为特殊值 *System.out* 时,日志将发送到标准输出。

写入文件时,日志将以换行符分隔的 JSON 格式进行格式化。写入标准输出时,日志将以纯文本格式化。

默认值 类型 动态

System.out

字符串

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_file

log_file

ELASTIC_APM_LOG_FILE

log_ecs_reformatting ( [1.22.0] 在 1.22.0 中添加。 实验性)

编辑

此功能目前处于实验阶段,这意味着它默认情况下处于禁用状态,并且不保证在未来的版本中向后兼容。

指定代理是否以及如何自动将应用程序日志重新格式化为 兼容 ECS 的 JSON,适合摄取到 Elasticsearch 中以进行进一步的日志分析。此功能适用于 log4j1、log4j2、Logback 和 java.util.logging。如果存在这样的跟踪/事务/错误 ID,则 ECS 日志行将包含它们。

此选项默认仅适用于模式布局/格式化程序。另请参见 log_ecs_formatter_allow_list。要正确摄取和解析 ECS JSON 日志,请遵循 入门指南

可用选项

  • OFF - 应用程序日志不会重新格式化。
  • SHADE - 代理日志将重新格式化,并且除了原始应用程序日志之外,还会自动创建“遮蔽”ECS-JSON 格式的日志。遮蔽日志的名称与原始日志相同,但扩展名使用“.ecs.json”而不是原始扩展名。遮蔽日志的目标目录可以通过 log_ecs_reformatting_dir 配置进行配置。遮蔽日志不会继承原始日志的文件轮转策略。相反,它们根据 log_file_size 配置使用自己的基于大小的轮转策略,同时允许最多两个遮蔽日志文件。
  • REPLACE - 类似于 SHADE,但不会写入原始日志。如果您希望保持类似的日志相关开销,但将日志写入不同的位置和/或使用不同的文件扩展名,则此选项很有用。
  • OVERRIDE - 使用相同的日志输出,但使用兼容 ECS 的 JSON 格式而不是原始格式。

虽然 SHADEREPLACE 选项仅与文件日志附加程序相关,但 OVERRIDE 选项也适用于其他附加程序,例如 System out 和控制台。

dynamic config

有效选项:OFFSHADEREPLACEOVERRIDE

默认值 类型 动态

OFF

LogEcsReformatting

true

Java 系统属性 属性文件 环境变量

elastic.apm.log_ecs_reformatting

log_ecs_reformatting

ELASTIC_APM_LOG_ECS_REFORMATTING

log_ecs_reformatting_additional_fields ( [1.26.0] 在 1.26.0 中添加。 )

编辑

将作为附加字段添加到所有日志事件的键值对的逗号分隔列表。采用 key=value[,key=value[,...]] 格式,例如:key1=value1,key2=value2。仅当 log_ecs_reformatting 设置为 OFF 以外的任何选项时才相关。目前不支持通过代理直接发送日志的附加字段。

默认值 类型 动态

<无>

映射

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_ecs_reformatting_additional_fields

log_ecs_reformatting_additional_fields

ELASTIC_APM_LOG_ECS_REFORMATTING_ADDITIONAL_FIELDS

log_ecs_formatter_allow_list

编辑

log_ecs_reformatting 设置为 OFF 以外的任何选项时,只有与此列表中的项目匹配的格式化程序才会自动重新格式化为 ECS。格式化程序是特定于日志框架的实体,负责日志事件的格式化。例如,在 log4j 中,它将是 Layout 实现,而在 Logback 中,它将是 Encoder 实现。

此选项支持通配符 *,它匹配零个或多个字符。示例:/foo/*/bar/*/baz**foo*。默认情况下匹配不区分大小写。在元素前加上 (?-i) 将使匹配区分大小写。

默认值 类型 动态

*PatternLayout*、org.apache.log4j.SimpleLayout、ch.qos.logback.core.encoder.EchoEncoder、java.util.logging.SimpleFormatter、org.apache.juli.OneLineFormatter、org.springframework.boot.logging.java.SimpleFormatter

列表

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_ecs_formatter_allow_list

log_ecs_formatter_allow_list

ELASTIC_APM_LOG_ECS_FORMATTER_ALLOW_LIST

log_ecs_reformatting_dir

编辑

如果 log_ecs_reformatting 设置为 SHADEREPLACE,则遮蔽日志文件将默认与原始日志一起写入同一目录中。使用此配置以便将遮蔽日志写入备用目标。省略此配置或将其设置为空字符串将恢复默认行为。如果使用相对路径,则此路径将相对于原始日志目录使用。

默认值 类型 动态

<无>

字符串

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_ecs_reformatting_dir

log_ecs_reformatting_dir

ELASTIC_APM_LOG_ECS_REFORMATTING_DIR

log_file_size ( [1.17.0] 在 1.17.0 中添加。 )

编辑

日志文件的大小。

代理始终保留一个历史文件,因此最大总日志文件大小是此设置值的两倍。

默认值 类型 动态

50mb

字节值

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_file_size

log_file_size

ELASTIC_APM_LOG_FILE_SIZE

log_format_sout ( [1.17.0] 在 1.17.0 中添加。 )

编辑

定义将日志记录到 System.out 时的日志格式。

设置为 JSON 时,代理将使用 符合 ECS 的 JSON 格式 格式化日志,其中每个日志事件都序列化为单行。

有效选项:PLAIN_TEXTJSON

默认值 类型 动态

PLAIN_TEXT

LogFormat

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_format_sout

log_format_sout

ELASTIC_APM_LOG_FORMAT_SOUT

log_format_file ( [1.17.0] 在 1.17.0 中添加。 )

编辑

定义将日志记录到文件时的日志格式。

设置为 JSON 时,代理将使用 符合 ECS 的 JSON 格式 格式化日志,其中每个日志事件都序列化为单行。

有效选项:PLAIN_TEXTJSON

默认值 类型 动态

PLAIN_TEXT

LogFormat

false

Java 系统属性 属性文件 环境变量

elastic.apm.log_format_file

log_format_file

ELASTIC_APM_LOG_FORMAT_FILE

log_sending ( [1.36.0] 在 1.36.0 中添加。 实验性)

编辑

此功能目前处于实验阶段,这意味着它默认情况下处于禁用状态,并且不保证在未来的版本中向后兼容。

将代理和应用程序日志直接发送到 APM Server。

请注意,如果代理无法跟上日志,如果 APM Server 不可用,或者 Elasticsearch 无法快速索引日志,则日志可能会丢失。

为了获得更好的交付保证,建议使用 Filebeat 发送 ECS JSON 日志文件。另请参见 log_ecs_reformatting。日志发送目前不支持自定义 MDC 字段,如果需要自定义 MDC 字段,必须使用 log_ecs_reformatting 和使用 Filebeat 发送日志。

dynamic config

默认值 类型 动态

false

布尔值

true

Java 系统属性 属性文件 环境变量

elastic.apm.log_sending

log_sending

ELASTIC_APM_LOG_SENDING