1.5. 日志记录格式


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

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

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

Expand
符号Summary描述

%%

%

呈现简单的 % 字符。

%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

换行符

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

%N

进程名称

呈现当前进程的名称。

%p

级别

呈现消息的日志级别。

%r

相对时间

从应用程序日志开始后,呈现时间(毫秒)。

%s

简单消息

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

%t

线程名称

呈现线程名称。

%t{id}

线程 ID

呈现线程 ID。

%z{<zone name>}

时区

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

%x{<MDC 属性 name>}

映射的诊断上下文值

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

%X

映射的诊断上下文值

{property.key=property.value} 格式呈现 Mapped diagnose Context 中的所有值。

%x

嵌套诊断上下文值

{value1.value2} 格式呈现来自 Nested diagnosticss Context 中的所有值。

[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>
      Copy to Clipboard Toggle word wrap
    • 使用 Gradle:

      implementation("io.quarkus:quarkus-logging-json")
      Copy to Clipboard Toggle word wrap

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

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

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

    %dev.quarkus.log.console.json.enabled=false
    %test.quarkus.log.console.json.enabled=false
    Copy to Clipboard Toggle word wrap
1.5.1.1.1. 配置

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

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

Expand

配置属性

Type

default

Console logging

Type

default

quarkus.log.console.json.enabled

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

环境变量: QUARKUS_LOG_CONSOLE_JSON_ENABLED

布尔值

 

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

所需的 HEKETI Required

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

其他字段类型规格。支持的类型: 字符串int。如果没有指定,则字符串为默认值。

环境变量: QUARKUS_LOG_CONSOLE_JSON_ADDITIONAL_FIELD__FIELD_NAME_TYPE

字符串,int,long

string

quarkus.log.console.json.log-format

指定生成的 JSON 的格式

环境变量: QUARKUS_LOG_CONSOLE_JSON_LOG_FORMAT

默认,ecs

default

File logging

Type

default

quarkus.log.file.json.enabled

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

环境变量: QUARKUS_LOG_FILE_JSON_ENABLED

布尔值

 

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

所需的 HEKETI Required

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

其他字段类型规格。支持的类型: 字符串int。如果没有指定,则字符串为默认值。

环境变量 : QUARKUS_LOG_FILE_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

字符串,int,long

string

quarkus.log.file.json.log-format

指定生成的 JSON 的格式

环境变量: QUARKUS_LOG_FILE_JSON_LOG_FORMAT

默认,ecs

default

Syslog logging

Type

default

quarkus.log.syslog.json.enabled

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

环境变量: QUARKUS_LOG_SYSLOG_JSON_ENABLED

布尔值

 

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

所需的 HEKETI Required

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

其他字段类型规格。支持的类型: 字符串int。如果没有指定,则字符串为默认值。

环境变量: QUARKUS_LOG_SYSLOG_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

字符串,int,long

string

quarkus.log.syslog.json.log-format

指定生成的 JSON 的格式

环境变量: QUARKUS_LOG_SYSLOG_JSON_LOG_FORMAT

默认,ecs

default

Socket logging

Type

default

quarkus.log.socket.json.enabled

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

环境变量: QUARKUS_LOG_SOCKET_JSON_ENABLED

布尔值

 

quarkus.log.socket.json.pretty-print

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

环境变量: QUARKUS_LOG_SOCKET_JSON_PRETTY_PRINT

布尔值

false

quarkus.log.socket.json.date-format

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

环境变量: QUARKUS_LOG_SOCKET_JSON_DATE_FORMAT

string

default

quarkus.log.socket.json.record-delimiter

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

环境变量: QUARKUS_LOG_SOCKET_JSON_RECORD_DELIMITER

string

 

quarkus.log.socket.json.zone-id

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

环境变量: QUARKUS_LOG_SOCKET_JSON_ZONE_ID

string

default

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

要指定的异常输出类型。

环境变量: QUARKUS_LOG_SOCKET_JSON_EXCEPTION_OUTPUT_TYPE

详细格式化的 ,详细格式

详细

quarkus.log.socket.json.print-details

在日志中可以打印更多详细信息。

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

环境变量: QUARKUS_LOG_SOCKET_JSON_PRINT_DETAILS

布尔值

false

quarkus.log.socket.json.key-overrides

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

环境变量: QUARKUS_LOG_SOCKET_JSON_KEY_OVERRIDES

string

 

quarkus.log.socket.json.excluded-keys

在 JSON 输出中排除的键。

环境变量: QUARKUS_LOG_SOCKET_JSON_EXCLUDED_KEYS

字符串列表

 

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

其他字段值。

环境变量: QUARKUS_LOG_SOCKET_JSON_ADDITIONAL_FIELD__FIELD_NAME__VALUE

string

所需的 HEKETI Required

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

其他字段类型规格。支持的类型: 字符串int。如果没有指定,则字符串为默认值。

环境变量: QUARKUS_LOG_SOCKET_JSON_ADDITIONAL_FIELD__FIELD_NAME_NAME_TYPE

字符串,int,long

string

quarkus.log.socket.json.log-format

指定生成的 JSON 的格式

环境变量: QUARKUS_LOG_SOCKET_JSON_LOG_FORMAT

默认,ecs

default

警告

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

注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat