1.5. 日志记录格式
红帽构建的 Quarkus 使用基于模式的日志格式程序,默认生成人类可读的文本日志,但您也可以使用 dedicated 属性为每个日志处理程序配置格式。
对于 console 处理程序,属性为 quarkus.log.console.format
。
日志记录格式字符串支持以下符号:
符号 | Summary | 描述 |
---|---|---|
|
|
呈现简单的 |
| 类别 | 呈现类别名称。 |
| 源类 | 呈现源类名称。[a] |
| Date |
使用给定日期格式字符串呈现日期,它使用 |
| 例外 | 呈现抛出的异常(若有)。 |
| 源文件 | 呈现源文件名。[a] |
| 主机名 | 呈现系统简单主机名。 |
| 限定主机名 | 呈现系统的完全限定主机名,这可能与简单的主机名相同,具体取决于操作系统配置。 |
| 进程 ID | 呈现当前进程 PID。 |
| 源位置 | 呈现源位置信息,其中包括源文件名、行号、类名称和方法名称。[a] |
| 源行 | 呈现源行号。[a] |
| 完整消息 | 呈现日志消息加上异常(如果有)。 |
| 源方法 | 呈现源方法名称。[a] |
| 换行符 | 呈现特定于平台的行分隔符字符串。 |
| 进程名称 | 呈现当前进程的名称。 |
| 级别 | 呈现消息的日志级别。 |
| 相对时间 | 从应用程序日志开始后,呈现时间(毫秒)。 |
| 简单消息 | 仅呈现日志消息,没有异常追踪。 |
| 线程名称 | 呈现线程名称。 |
| 线程 ID | 呈现线程 ID。 |
| 时区 |
将输出的时区设置为 < |
| 映射的诊断上下文值 | 呈现映射诊断上下文中的值。 |
| 映射的诊断上下文值 |
以 |
| 嵌套诊断上下文值 |
以 |
[a]
格式检查调用者信息可能会影响性能的序列
|
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>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-logging-json</artifactId> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Gradle:
implementation("io.quarkus:quarkus-logging-json")
implementation("io.quarkus:quarkus-logging-json")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,此扩展存在替换了控制台配置中的输出格式配置,格式字符串和颜色设置(若有)将被忽略。将继续应用其他控制台配置项,包括控制异步日志记录和日志级别等。
在某些情况下,最好在 dev 模式中使用人类可读的(未结构化)登录,在生产环境模式中使用 JSON 日志记录(结构化)。这可以通过使用不同的配置文件来实现,如以下配置中所示。
在 application.properties 中为 dev 和 test 模式禁用 JSON 日志记录:
%dev.quarkus.log.console.json.enabled=false %test.quarkus.log.console.json.enabled=false
%dev.quarkus.log.console.json.enabled=false %test.quarkus.log.console.json.enabled=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.1.1.1. 配置 复制链接链接已复制到粘贴板!
使用支持的属性配置 JSON 日志记录扩展,以自定义其行为。
build 时修复的 - 配置属性在构建时修复 - 所有其他配置属性在运行时可覆盖
配置属性 | Type | default |
Type | default | |
确定是否启用 JSON 控制台格式化扩展,该扩展将禁用"常规"控制台格式。
环境变量: | 布尔值 | |
启用 JSON 记录的"pretty 打印"。请注意,有些 JSON 解析器将无法读取用户打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中可以打印更多详细信息。 打印详细信息可能会昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用密钥覆盖。
环境变量: | string | |
在 JSON 输出中排除的键。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 所需的 HEKETI Required |
其他字段类型规格。支持的类型:
环境变量: |
|
|
指定生成的 JSON 的格式
环境变量: |
|
|
Type | default | |
确定是否启用 JSON 控制台格式化扩展,该扩展将禁用"常规"控制台格式。
环境变量: | 布尔值 | |
启用 JSON 记录的"pretty 打印"。请注意,有些 JSON 解析器将无法读取用户打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中可以打印更多详细信息。 打印详细信息可能会昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用密钥覆盖。
环境变量: | string | |
在 JSON 输出中排除的键。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 所需的 HEKETI Required |
其他字段类型规格。支持的类型:
环境变量 : |
|
|
指定生成的 JSON 的格式
环境变量: |
|
|
Type | default | |
确定是否启用 JSON 控制台格式化扩展,该扩展将禁用"常规"控制台格式。
环境变量: | 布尔值 | |
启用 JSON 记录的"pretty 打印"。请注意,有些 JSON 解析器将无法读取用户打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中可以打印更多详细信息。 打印详细信息可能会昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用密钥覆盖。
环境变量: | string | |
在 JSON 输出中排除的键。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 所需的 HEKETI Required |
其他字段类型规格。支持的类型:
环境变量: |
|
|
指定生成的 JSON 的格式
环境变量: |
|
|
Type | default | |
确定是否启用 JSON 控制台格式化扩展,该扩展将禁用"常规"控制台格式。
环境变量: | 布尔值 | |
启用 JSON 记录的"pretty 打印"。请注意,有些 JSON 解析器将无法读取用户打印的输出。
环境变量: | 布尔值 |
|
要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。
环境变量: | string |
|
要使用的特殊记录分隔符。默认情况下使用 newline。
环境变量: | string | |
要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。
环境变量: | string |
|
要指定的异常输出类型。
环境变量: |
|
|
在日志中可以打印更多详细信息。 打印详细信息可能会昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。
环境变量: | 布尔值 |
|
使用自定义值覆盖键。省略这个值表示不会应用密钥覆盖。
环境变量: | string | |
在 JSON 输出中排除的键。
环境变量: | 字符串列表 | |
其他字段值。
环境变量: | string | 所需的 HEKETI Required |
其他字段类型规格。支持的类型:
环境变量: |
|
|
指定生成的 JSON 的格式
环境变量: |
|
|
启用用户进行打印可能会导致某些处理器和 JSON 解析器失败。
打印详细信息可能会昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。