1.5. 日志记录格式


Quarkus 使用基于模式的日志格式器,它默认生成人类可读的文本日志,但您也可以使用专用属性为每个日志处理程序配置格式。

对于控制台处理程序,属性为 quarkus.log.console.format

日志记录格式字符串支持以下符号:

符号概述描述

%%

%

呈现简单的 % 字符。

%c

类别

呈现类别名称。

%C

源类

呈现源类名称。[a]

%d{xxx}

Date

使用给定日期格式字符串呈现日期,它使用 java.text.SimpleDateFormat 定义的语法。

%e

例外

呈现出的异常(若有)。

%F

源文件

呈现源文件名称。[a]

%h

主机名

呈现系统简单主机名。

%H

合格主机名

呈现系统的完全限定主机名,其名称可能与简单主机名相同,具体取决于操作系统配置。

%i

进程 ID

呈现当前进程 PID。

%L

源位置

呈现源位置信息,其中包括源文件名、行号、类名称和方法名称。[a]

%L

源行

呈现源行号。[a]

%m

完整消息

呈现日志消息加上例外(如果有)。

%M

源方法

呈现源方法名称。[a]

%n

newline

呈现特定于平台的行分隔符字符串。

%N

进程名称

呈现当前进程的名称。

%p

级别

呈现消息的日志级别。

%r

相对时间

以毫秒为单位呈现应用程序日志开始的时间。

%s

简单消息

只呈现日志消息,没有异常追踪。

%t

线程名称

呈现线程名称。

%T{id}

线程 ID

呈现线程 ID。

%z{<zone name>}

时区

将输出的时区设置为 < zone name& gt;。

%x{<MDC 属性 name>}

映射诊断上下文值

呈现来自映射诊断上下文的值。

%X

映射诊断上下文值

呈现 Mapped Diagnostic Context 中的所有值,格式为 {property.key=property.value}

%x

嵌套诊断上下文值

呈现 Nested Diagnostics Context 中的所有值,格式为 {value1.value2}

[a] 检查调用者信息的格式序列可能会影响性能

1.5.1. 其他控制台日志记录格式

更改控制台日志格式很有用,例如,当 Quarkus 应用的控制台输出被处理并存储日志信息以便稍后进行分析时。

1.5.1.1. JSON 日志记录格式

可使用 quarkus-logging-json 扩展来添加对 JSON 日志记录格式及其相关配置的支持。

  1. 在构建文件中添加此扩展,如以下代码片段所示:

    • 使用 Maven:

      <dependency>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-logging-json</artifactId>
      </dependency>
    • 使用 Gradle :

      implementation("io.quarkus:quarkus-logging-json")

      默认情况下,存在此扩展会替换控制台配置中的输出格式配置,格式字符串和颜色设置(若有)将被忽略。其他控制台配置项目(包括控制异步日志记录和日志级别)将继续应用。

      在某些情况下,在 dev 模式中使用人类可读的(不结构化)登录,在生产环境模式中使用 JSON 日志记录(structured)会有意义。这可以通过使用不同配置集来实现,如以下配置所示。

  2. 在 dev 和 test 模式的 application.properties 中禁用 JSON 日志记录:

    %dev.quarkus.log.console.json=false
    %test.quarkus.log.console.json=false
1.5.1.1.1. 配置

使用支持的属性配置 JSON 日志扩展,以自定义其行为。

lock 构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖

Console logging

类型

default

quarkus.log.console.json

确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。

环境变量: QUARKUS_LOG_CONSOLE_JSON

布尔值

true

quarkus.log.console.json.pretty-print

启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。

环境变量: QUARKUS_LOG_CONSOLE_JSON_PRETTY_PRINT

布尔值

false

quarkus.log.console.json.date-format

要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。

环境变量: QUARKUS_LOG_CONSOLE_JSON_DATE_FORMAT

string

default

quarkus.log.console.json.record-delimiter

要使用的特殊记录分隔符。默认情况下使用 newline。

环境变量: QUARKUS_LOG_CONSOLE_JSON_RECORD_DELIMITER

string

 

quarkus.log.console.json.zone-id

要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。

环境变量: QUARKUS_LOG_CONSOLE_JSON_ZONE_ID

string

default

quarkus.log.console.json.exception-output-type

要指定的异常输出类型。

环境变量: QUARKUS_LOG_CONSOLE_JSON_EXCEPTION_OUTPUT_TYPE

详细格式化详细和格式化

详细

quarkus.log.console.json.print-details

在日志中启用打印更多详细信息。

打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。

环境变量: QUARKUS_LOG_CONSOLE_JSON_PRINT_DETAILS

布尔值

false

quarkus.log.console.json.key-overrides

使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。

环境变量: QUARKUS_LOG_CONSOLE_JSON_KEY_OVERRIDES

string

 

quarkus.log.console.json.excluded-keys

要排除在 JSON 输出中的密钥。

环境变量: QUARKUS_LOG_CONSOLE_JSON_EXCLUDED_KEYS

字符串列表

 

quarkus.log.console.json.additional-field."field-name".value

其他字段值。

环境变量: QUARKUS_LOG_CONSOLE_JSON_ADDITIONAL_FIELD__FIELD_NAME_VALUE

string

必需 exclamation circle

quarkus.log.console.json.additional-field."field-name".type

其他字段类型规格。支持的类型: 字符串intlong。若未指定,则字符串为默认值。

环境变量: QUARKUS_LOG_CONSOLE_JSON_ADDITIONAL_FIELD__FIELD_NAME_TYPE

字符串,int,long

string

File logging

类型

default

quarkus.log.file.json

确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。

环境变量: QUARKUS_LOG_FILE_JSON

布尔值

true

quarkus.log.file.json.pretty-print

启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。

环境变量: QUARKUS_LOG_FILE_JSON_PRETTY_PRINT

布尔值

false

quarkus.log.file.json.date-format

要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。

环境变量: QUARKUS_LOG_FILE_JSON_DATE_FORMAT

string

default

quarkus.log.file.json.record-delimiter

要使用的特殊记录分隔符。默认情况下使用 newline。

环境变量: QUARKUS_LOG_FILE_JSON_RECORD_DELIMITER

string

 

quarkus.log.file.json.zone-id

要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。

环境变量: QUARKUS_LOG_FILE_JSON_ZONE_ID

string

default

quarkus.log.file.json.exception-output-type

要指定的异常输出类型。

环境变量: QUARKUS_LOG_FILE_JSON_EXCEPTION_OUTPUT_TYPE

详细格式化详细和格式化

详细

quarkus.log.file.json.print-details

在日志中启用打印更多详细信息。

打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。

环境变量: QUARKUS_LOG_FILE_JSON_PRINT_DETAILS

布尔值

false

quarkus.log.file.json.key-overrides

使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。

环境变量: QUARKUS_LOG_FILE_JSON_KEY_OVERRIDES

string

 

quarkus.log.file.json.excluded-keys

要排除在 JSON 输出中的密钥。

环境变量: QUARKUS_LOG_FILE_JSON_EXCLUDED_KEYS

字符串列表

 

quarkus.log.file.json.additional-field."field-name".value

其他字段值。

环境变量: QUARKUS_LOG_FILE_JSON_ADDITIONAL_FIELD__FIELD_NAME_VALUE

string

必需 exclamation circle

quarkus.log.file.json.additional-field."field-name".type

其他字段类型规格。支持的类型: 字符串intlong。若未指定,则字符串为默认值。

环境变量: QUARKUS_LOG_FILE_JSON_ADDITIONAL_FIELD__FIELD_NAME_TYPE

字符串,int,long

string

Syslog 日志记录

类型

default

quarkus.log.syslog.json

确定是否启用 JSON 控制台格式扩展,它会禁用"常规"控制台格式。

环境变量: QUARKUS_LOG_SYSLOG_JSON

布尔值

true

quarkus.log.syslog.json.pretty-print

启用 JSON 记录的"pretty 打印"。请注意,一些 JSON 解析器将无法读取用户友善打印的输出。

环境变量: QUARKUS_LOG_SYSLOG_JSON_PRETTY_PRINT

布尔值

false

quarkus.log.syslog.json.date-format

要使用的日期格式。特殊字符串 "default" 表示应使用默认格式。

环境变量: QUARKUS_LOG_SYSLOG_JSON_DATE_FORMAT

string

default

quarkus.log.syslog.json.record-delimiter

要使用的特殊记录分隔符。默认情况下使用 newline。

环境变量: QUARKUS_LOG_SYSLOG_JSON_RECORD_DELIMITER

string

 

quarkus.log.syslog.json.zone-id

要使用的区域 ID。特殊字符串 "default" 表示应使用默认区域。

环境变量: QUARKUS_LOG_SYSLOG_JSON_ZONE_ID

string

default

quarkus.log.syslog.json.exception-output-type

要指定的异常输出类型。

环境变量: QUARKUS_LOG_SYSLOG_JSON_EXCEPTION_OUTPUT_TYPE

详细格式化详细和格式化

详细

quarkus.log.syslog.json.print-details

在日志中启用打印更多详细信息。

打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。

环境变量: QUARKUS_LOG_SYSLOG_JSON_PRINT_DETAILS

布尔值

false

quarkus.log.syslog.json.key-overrides

使用自定义值覆盖键。省略这个值表示不会应用任何键覆盖。

环境变量: QUARKUS_LOG_SYSLOG_JSON_KEY_OVERRIDES

string

 

quarkus.log.syslog.json.excluded-keys

要排除在 JSON 输出中的密钥。

环境变量: QUARKUS_LOG_SYSLOG_JSON_EXCLUDED_KEYS

字符串列表

 

quarkus.log.syslog.json.additional-field."field-name".value

其他字段值。

环境变量: QUARKUS_LOG_SYSLOG_JSON_ADDITIONAL_FIELD__FIELD_NAME_VALUE

string

必需 exclamation circle

quarkus.log.syslog.json.additional-field."field-name".type

其他字段类型规格。支持的类型: 字符串intlong。若未指定,则字符串为默认值。

环境变量: QUARKUS_LOG_SYSLOG_JSON_ADDITIONAL_FIELD__FIELD_NAME_TYPE

字符串,int,long

string

警告

启用用户用户打印可能会导致某些处理器和 JSON 解析器失败。

注意

打印详细信息可能比较昂贵,因为值是从调用者检索的。详情包括源类名称、源文件名、源方法名称和源行号。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.