1.3. 设置运行时配置
您可以在 application.properties 文件中配置日志记录级别和类别。
日志记录类别是分级。当您为类别设置日志级别时,配置会应用到该类别的所有子类。
有两个日志记录级别设置: 日志级别和最小日志记录级别。默认日志记录级别为 INFO,默认的最小日志记录级别为 DEBUG。您可以使用 quarkus.log. level 和 属性或类别全局调整。
quarkus.log.min-level
当您在最小日志记录级别下设置日志级别时,您必须调整最小日志记录级别。否则,最小日志记录级别的值会覆盖日志级别。
过度日志记录对性能有影响。您可以调整最小日志记录级别,以仅收集与应用程序相关的数据。减少日志卷可能会优化内存用量并改进应用程序的性能。例如,在原生执行中,最小级别启用较低级别的检查(isTraceEnabled)被折叠为 false,这会导致代码删除。
流程
在
application.properties文件中配置日志记录:以下示例演示了如何将默认日志记录级别设置为
INFO日志记录,并包含 HibernateDEBUG日志:application.properties文件示例quarkus.log.level=INFO quarkus.log.category."org.hibernate".level=DEBUG
quarkus.log.level=INFO quarkus.log.category."org.hibernate".level=DEBUGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您使用命令行设置配置属性时,请使用
"转义。Example
-
-Dquarkus.log.category.\"org.hibernate\".level=TRACE
-
1.3.1. 配置日志记录格式 复制链接链接已复制到粘贴板!
Quarkus 使用基于模式的日志格式器来生成人类可读的文本日志。日志条目显示时间戳、日志记录级别、类名称、线程 ID 和消息。您可以使用专用配置属性自定义每个日志处理程序的格式。
先决条件
- 有一个 Quarkus Maven 项目。
流程
为
quarkus.log.console.format设置值来配置控制台处理器,如下所示:application.properties文件示例quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%nquarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%nCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置会产生以下日志消息格式:
14:11:07 INFO [ExampleResource] (executor-thread-199) Hello
14:11:07 INFO [ExampleResource] (executor-thread-199) HelloCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.1.1. 日志记录格式字符串 复制链接链接已复制到粘贴板!
下表显示了可用于配置日志消息格式的日志记录格式字符串符号。
| 符号 | 概述 | 描述 |
|---|---|---|
|
|
|
简单 |
|
| 类别 | 类别名称 |
|
| 源类 | 源类名称 [a] |
|
| Date |
给定日期格式字符串的日期,它遵循 |
|
| 例外 | 异常堆栈追踪 |
|
| 源文件 | 源文件名 [a] |
|
| 主机名 | 系统简单主机名 |
|
| 合格主机名 | 系统的完全限定主机名。根据操作系统配置,它可能与简单主机名相同。 |
|
| 进程 ID | 当前进程 PID |
|
| 源位置 | 源位置(源文件名、行号、类名称和方法名称) [a] |
|
| 源行 | 源行号 [a] |
|
| 完整消息 | 包括异常追踪的日志消息 |
|
| 源方法 | 源方法名称 [a] |
|
| newline | 特定于平台的行分隔符字符串 |
|
| 进程名称 | 当前进程的名称 |
|
| 级别 | 消息的日志记录级别 |
|
| 相对时间 | 应用程序日志开始的相对时间(以毫秒为单位) |
|
| 简单消息 | 没有异常追踪的日志消息 |
|
| 线程名称 | 线程名称 |
|
| 线程 ID | 线程 ID |
|
| 时区 |
输出的时区,格式为 < |
|
| 映射诊断上下文值 | 映射诊断上下文中的值 |
|
| 映射诊断上下文值 | 来自 Mapped Diagnostics Context 的所有值,格式为 {property.key=property.value} |
|
| 嵌套诊断上下文值 | {value1.value2} 格式的 Nested Diagnostics Context 的所有值 |
[a]
检查调用者信息的格式序列可能会影响性能。
| ||
1.3.2. 日志记录类别设置 复制链接链接已复制到粘贴板!
您可以使用日志记录类别根据它们的严重性或它们所属的组件来组织日志消息。每个类别都可以独立配置。
对于每个类别,相同的设置适用于 console、file 和 syslog。您可以通过将一个或多个指定处理程序附加到类别来覆盖设置。
| 属性名称 | default | 描述 |
|---|---|---|
|
|
|
配置 < |
|
|
|
配置 < |
|
|
| 启用日志记录器将其输出发送到父日志记录器。 |
|
|
| 要附加到特定类别的处理程序的名称。 |
[a]
有些扩展定义了特定类别的自定义默认日志记录级别,以减少日志记录。在配置中设置日志级别会覆盖任何扩展的日志记录级别。
[b]
默认情况下,配置的类别从根日志记录器类别继承所有附加的处理程序。
| ||
在将日志记录类别名称放在属性名称中时,将日志记录类别名称放在双引号中,以转义通常属于类别名称的句点(.)。
1.3.3. 日志记录级别 复制链接链接已复制到粘贴板!
您可以使用日志记录级别按严重性对日志进行分类,或者它们对 Quarkus 应用程序的健康状态和稳定性的影响。通过日志记录级别,您可以从纯信息的事件过滤关键事件。
| 日志记录级别 | 描述 |
|---|---|
| OFF | 用于关闭日志记录的特殊级别。 |
| FATAL | 关键服务故障或无法完成服务请求。 |
| ERROR | 请求出现重大中断,或者无法服务请求。 |
| WARN | 非关键服务错误或可能不需要立即纠正的问题。 |
| INFO | 服务生命周期事件或重要相关的非常频率信息。 |
| DEBUG | 提供有关生命周期或非请求绑定事件的额外调试信息的消息。 |
| TRACE | 传递的消息具有高频率,可提供额外每个请求的调试信息。 |
| ALL | 包括自定义级别在内的所有消息的特殊级别。 |
另外,您可以使用 java.util.logging 软件包中描述的日志级别名称。
1.3.4. 根日志记录器配置 复制链接链接已复制到粘贴板!
根日志记录器类别位于日志记录器层次结构的顶部,其配置在日志配置的顶级。根日志记录器捕获发送到服务器的指定日志记录级别或更高级别的所有日志消息,不会由日志记录类别捕获。
| 属性名称 | default | 描述 |
|---|---|---|
|
|
| 每个日志记录类别的默认日志记录级别。 |
|
|
| 每个日志记录类别的默认最小日志记录级别。 |
1.3.5. Quarkus 日志处理程序 复制链接链接已复制到粘贴板!
日志处理程序是一个日志记录组件,将日志事件发送到接收者。Quarkus 包括以下日志处理程序:
1.3.6. 日志配置示例 复制链接链接已复制到粘贴板!
本节演示了如何为 Quarkus 项目配置日志记录示例。
application.properties 文件示例
application.properties 文件示例
默认情况下,根日志记录器级别设置为 INFO。当您要收集较低级别的日志时,更改根日志记录器配置,如 DEBUG 或 TRACE。
application.properties 文件示例