日志记录配置选项
编辑日志记录配置选项编辑
log_level
编辑
设置代理的日志记录级别。此选项不区分大小写。
CRITICAL
是一个有效的选项,但它映射到 ERROR
;WARN
和 WARNING
是等效的;OFF
仅在 1.16.0 及更高版本中可用。
有效选项:OFF
、ERROR
、CRITICAL
、WARN
、WARNING
、INFO
、DEBUG
、TRACE
默认值 | 类型 | 动态 |
---|---|---|
|
LogLevel |
true |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_file
编辑
设置代理日志的路径。特殊值 _AGENT_HOME_
是 elastic-apm-agent.jar 所在文件夹的占位符。例如:_AGENT_HOME_/logs/elastic-apm.log
当设置为特殊值 *System.out* 时,日志将发送到标准输出。
当记录到文件时,日志将以换行符分隔的 JSON 格式进行格式化。当记录到标准输出时,日志将格式化为纯文本。
默认值 | 类型 | 动态 |
---|---|---|
|
字符串 |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
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 格式,而不是原始格式。
虽然 SHADE
和 REPLACE
选项仅与文件日志追加程序相关,但 OVERRIDE
选项也适用于其他追加程序,例如 System out 和控制台。
有效选项:OFF
、SHADE
、REPLACE
、OVERRIDE
默认值 | 类型 | 动态 |
---|---|---|
|
LogEcsReformatting |
true |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
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 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_ecs_formatter_allow_list
编辑
当 log_ecs_reformatting
设置为 OFF
以外的任何选项时,只有与此列表中的项目匹配的格式化程序才会自动重新格式化为 ECS。格式化程序是特定于日志记录框架的实体,负责格式化日志事件。例如,在 log4j 中,它是一个 Layout
实现,而在 Logback 中,它是一个 Encoder
实现。
此选项支持通配符 *
,它匹配零个或多个字符。例如:/foo/*/bar/*/baz*
、*foo*
。默认情况下,匹配不区分大小写。在元素前面加上 (?-i)
会使匹配区分大小写。
默认值 | 类型 | 动态 |
---|---|---|
|
列表 |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_ecs_reformatting_dir
编辑
如果 log_ecs_reformatting
设置为 SHADE
或 REPLACE
,则默认情况下,阴影日志文件将与原始日志一起写入同一目录中。使用此配置可以将阴影日志写入备用目标。省略此配置或将其设置为空字符串将恢复默认行为。如果使用相对路径,则此路径将相对于原始日志目录使用。
默认值 | 类型 | 动态 |
---|---|---|
|
字符串 |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_file_size
( [1.17.0] 在 1.17.0 中添加。 )编辑
日志文件的大小。
代理始终保留一个历史文件,以便最大日志文件总大小是此设置值的两倍。
默认值 | 类型 | 动态 |
---|---|---|
|
字节值 |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_format_sout
( [1.17.0] 在 1.17.0 中添加。 )编辑
定义记录到 System.out
时的日志格式。
当设置为 JSON
时,代理将以与 ECS 兼容的 JSON 格式格式化日志,其中每个日志事件都序列化为一行。
有效选项:PLAIN_TEXT
、JSON
默认值 | 类型 | 动态 |
---|---|---|
|
LogFormat |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_format_file
( [1.17.0] 在 1.17.0 中添加。 )编辑
定义记录到文件时的日志格式。
当设置为 JSON
时,代理将以与 ECS 兼容的 JSON 格式格式化日志,其中每个日志事件都序列化为一行。
有效选项:PLAIN_TEXT
、JSON
默认值 | 类型 | 动态 |
---|---|---|
|
LogFormat |
false |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|
log_sending
( [1.36.0] 在 1.36.0 中添加。 实验性)编辑
此功能目前处于实验阶段,这意味着默认情况下禁用它,并且不保证在未来版本中向后兼容。
将代理和应用程序日志直接发送到 APM 服务器。
请注意,如果代理无法跟上日志,如果 APM 服务器不可用,或者如果 Elasticsearch 无法足够快地索引日志,则日志可能会丢失。
为了获得更好的交付保证,建议使用 Filebeat 传输 ECS JSON 日志文件。另请参阅 log_ecs_reformatting
。日志发送当前不支持自定义 MDC 字段,如果需要自定义 MDC 字段,则必须使用 log_ecs_reformatting
并使用 Filebeat 传输日志。
默认值 | 类型 | 动态 |
---|---|---|
|
布尔值 |
true |
Java 系统属性 | 属性文件 | 环境 |
---|---|---|
|
|
|