第 3 章 设置运行时配置
您可以在 application.properties 文件中配置日志级别和日志记录类别设置。
日志记录类别是分级的。当您为类别设置日志级别时,配置会应用到该类别的所有子类别。
有两个日志级别设置:日志级别和最低日志级别。默认日志记录级别为 INFO,默认的最小日志记录级别为 DEBUG。您可以使用 quarkus.log.level 和 quarkus.log.min-level 属性全局调整,或者按类别调整。
当设置最低日志级别下的日志级别时,还必须调整最小日志级别。否则,最低日志级别的值会覆盖日志级别。
过量日志记录对性能有影响。您可以调整最小日志级别,以仅收集应用程序的相关数据。减少日志卷可能会优化内存用量并改进应用程序的性能。例如,在原生执行中,最小级别检查(即 TraceEnabled)可以被折叠为 false,这会导致死代码删除。
流程
在
application.properties文件中配置日志记录:src/main/resources/application.properties
<configuration_key>=<value>
<configuration_key>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下示例演示了如何将默认日志级别设置为
INFO日志记录,并包含 HibernateDEBUG日志:src/main/resources/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 注意当您通过命令行设置配置属性时,请确保转义
"。例如-Dquarkus.log.category.\"org.hibernate\".level=TRACE。
3.1. 配置日志记录格式 复制链接链接已复制到粘贴板!
Quarkus 使用基于模式的日志格式器来生成人类可读的文本日志。日志条目显示时间戳、日志记录级别、类名称、线程 ID 和消息。您可以使用专用配置属性自定义每个日志处理程序的格式。
先决条件
- 具有 Quarkus Maven 项目。
流程
为
quarkus.log.console.format设置一个值来配置控制台处理程序:src/main/resources/application.properties
quarkus.log.console.format=<logging_format_string>
quarkus.log.console.format=<logging_format_string>Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/resources/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
3.1.1. 日志记录格式字符串 复制链接链接已复制到粘贴板!
下表显示了可用于配置日志消息格式的日志记录格式符号。
| 符号 | 概述 | 描述 |
|---|---|---|
|
|
|
一个简单的 |
|
| 类别 | 类别名称 |
|
| 源类 | 源类名称[a] |
|
| Date |
给定日期格式字符串的日期,其遵循 |
|
| 例外 | 异常堆栈追踪 |
|
| 源文件 | 源文件名 [a] |
|
| 主机名 | 系统简单主机名 |
|
| 合格的主机名 | 系统的完全限定主机名。根据操作系统配置,它可能与简单主机名相同。 |
|
| 进程 ID | 当前进程 PID |
|
| 源位置 | 源位置(源文件名、行号、类名称和方法名称) [a] |
|
| 源行 | 源行号 [a] |
|
| 完整消息 | 包含异常追踪的日志消息 |
|
| 源方法 | 源方法名称 [a] |
|
| Newline | 特定于平台的行分隔符字符串 |
|
| 进程名称 | 当前进程的名称 |
|
| 级别 | 消息的日志记录级别 |
|
| 相对时间 | 从应用程序日志开始的相对时间(毫秒) |
|
| 简单消息 | 没有异常追踪的日志消息 |
|
| 线程名称 | 线程名称 |
|
| 线程 ID | 线程 ID |
|
| 时区 |
输出的时区,格式为 < |
|
| 映射关联上下文值 | 来自 Mapped mailboxs 上下文的值 |
|
| 映射的过期上下文值 | 来自 Mapped mailboxs 上下文的所有值,格式为 {property.key=property.value} |
|
| 嵌套的过期上下文值 | 来自 Nested mailboxs 上下文的所有值,格式为 {value1.value2} |
[a]
检查调用者信息的格式序列可能会影响性能。
| ||