日志配置选项
编辑日志配置选项
编辑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
。如果存在这样的跟踪/事务/错误 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 格式而不是原始格式。
虽然 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 Server。
请注意,如果代理无法跟上日志,如果 APM Server 不可用,或者 Elasticsearch 无法快速索引日志,则日志可能会丢失。
为了获得更好的交付保证,建议使用 Filebeat 发送 ECS JSON 日志文件。另请参见 log_ecs_reformatting
。日志发送目前不支持自定义 MDC 字段,如果需要自定义 MDC 字段,必须使用 log_ecs_reformatting
和使用 Filebeat 发送日志。
默认值 | 类型 | 动态 |
---|---|---|
|
布尔值 |
true |
Java 系统属性 | 属性文件 | 环境变量 |
---|---|---|
|
|
|