日志记录配置选项编辑

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。ECS 日志行将包含活动的跟踪/事务/错误 ID(如果有)。

默认情况下,此选项仅适用于模式布局/格式化程序。另请参阅 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 服务器。

请注意,如果代理无法跟上日志,如果 APM 服务器不可用,或者如果 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