1.5. 日志记录格式
Quarkus 使用基于模式的日志格式器,它默认生成人类可读的文本日志,但您也可以使用专用属性为每个日志处理程序配置格式。
对于控制台处理程序,属性为 quarkus.log.console.format
。
日志记录格式字符串支持以下符号:
符号 | 概述 | 描述 |
---|---|---|
|
|
呈现简单的 |
| 类别 | 呈现类别名称。 |
| 源类 | 呈现源类 name.footnote:calc[Format sequences,检查调用者信息可能会影响性能] |
| Date |
使用给定日期格式字符串呈现日期,它使用 |
| 例外 | 呈现出的异常(若有)。 |
| 源文件 | 呈现源文件 name.footnote:calc[] |
| 主机名 | 呈现系统简单主机名。 |
| 合格主机名 | 呈现系统的完全限定主机名,其名称可能与简单主机名相同,具体取决于操作系统配置。 |
| 进程 ID | 呈现当前进程 PID。 |
| 源位置 | 呈现源位置信息,其中包括源文件名、行号、类名称和方法 name.footnote:calc[] |
| 源行 | 呈现源行 number.footnote:calc[] |
| 完整消息 | 呈现日志消息加上例外(如果有)。 |
| 源方法 | 呈现源方法 name.footnote:calc[] |
| newline | 呈现特定于平台的行分隔符字符串。 |
| 进程名称 | 呈现当前进程的名称。 |
| 级别 | 呈现消息的日志级别。 |
| 相对时间 | 以毫秒为单位呈现应用程序日志开始的时间。 |
| 简单消息 | 只呈现日志消息,没有异常追踪。 |
| 线程名称 | 呈现线程名称。 |
| 线程 ID | 呈现线程 ID。 |
| 时区 |
将输出的时区设置为 < |
| 映射诊断上下文值 | 呈现来自映射诊断上下文的值 |
| 映射诊断上下文值 | 呈现 Mapped Diagnostic Context 中的所有值,格式为 {property.key=property.value} |
| 嵌套诊断上下文值 | 呈现 Nested Diagnostics Context 中的所有值,格式为 {value1.value2} |
1.5.1. 其他控制台日志记录格式
更改控制台日志格式很有用,例如,当 Quarkus 应用的控制台输出被处理并存储日志信息以便稍后进行分析时。
1.5.1.1. JSON 日志记录格式
可使用 quarkus-logging-json
扩展来添加对 JSON 日志记录格式及其相关配置的支持。
在构建文件中添加此扩展,如以下代码片段所示:
使用 Maven:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-logging-json</artifactId> </dependency>
使用 Gradle :
implementation("io.quarkus:quarkus-logging-json")
默认情况下,存在此扩展会替换控制台配置中的输出格式配置,格式字符串和颜色设置(若有)将被忽略。其他控制台配置项目(包括控制异步日志记录和日志级别)将继续应用。
在某些情况下,在 dev 模式中使用人类可读的(不结构化)登录,在生产环境模式中使用 JSON 日志记录(structured)会有意义。这可以通过使用不同配置集来实现,如以下配置所示。
在 dev 和 test 模式的 application.properties 中禁用 JSON 日志记录
%dev.quarkus.log.console.json=false %test.quarkus.log.console.json=false
1.5.1.1.1. 配置
使用支持的属性配置 JSON 日志扩展,以自定义其行为。
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。
环境变量: | 布尔值 |
|
启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中启用打印更多详细信息。 打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。
环境变量: | string | |
要排除在 JSON 输出中的密钥。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 必需 |
其他字段类型规格。支持的类型:string, int, long String 是默认值(如果未指定)。
环境变量: |
|
|
类型 | default | |
确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。
环境变量: | 布尔值 |
|
启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中启用打印更多详细信息。 打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。
环境变量: | string | |
要排除在 JSON 输出中的密钥。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 必需 |
其他字段类型规格。支持的类型:string, int, long String 是默认值(如果未指定)。
环境变量: |
|
|
类型 | default | |
确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。
环境变量: | 布尔值 |
|
启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中启用打印更多详细信息。 打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。
环境变量: | string | |
要排除在 JSON 输出中的密钥。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 必需 |
其他字段类型规格。支持的类型:string, int, long String 是默认值(如果未指定)。
环境变量: |
|
|
启用用户用户打印可能会导致某些处理器和 JSON 解析器失败。
打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。