第 16 章 配置日志记录
红帽构建的 Keycloak 使用 JBoss Logging 框架。以下是可用日志处理程序的高级概述,它带有通用父日志处理程序 root
:
- 控制台
- file
- syslog
16.1. 日志记录配置
日志记录在红帽构建的 Keycloak 中按类别完成。您可以为根日志级别或更具体的类别(如 org.hibernate
或 org.keycloak
)配置日志记录。也可以为每个特定的日志处理程序定制日志级别。
本章论述了如何配置日志记录。
16.1.1. 日志级别
下表定义可用的日志级别。
级别 | 描述 |
---|---|
FATAL | 具有完整无法服务的任何请求的关键故障。 |
ERROR | 导致无法处理请求的重大错误或问题。 |
WARN | 可能需要立即更正的非关键错误或问题。 |
INFO | 红帽构建的 Keycloak 生命周期事件或重要信息。低频率。 |
DEBUG | 用于调试目的(如数据库日志)的更多详细信息。频率更高。 |
TRACE | 最详细的调试信息。非常高的频率。 |
ALL | 所有日志消息的特殊级别。 |
OFF | 完全关闭日志记录的特殊级别(不推荐)。 |
16.1.2. 配置 root 日志级别
当没有针对更具体的类别日志记录器的日志级别配置时,会使用封闭类别。如果没有封闭类别,则使用根日志记录器级别。
要设置 root 日志级别,请输入以下命令:
bin/kc.[sh|bat] start --log-level=<root-level>
对这个命令使用以下指南:
-
对于
<root-level
>,请提供上表中定义的级别。 -
日志级别不区分大小写。例如,您可以使用
DEBUG
或debug
。 -
如果您要意外设置日志级别两次,则列表中最后一次出现的内容将变为日志级别。例如,如果您包含 syntax
-log-level="info,…,DEBUG,…"
,则根日志记录器将为DEBUG
。
16.1.3. 配置特定于类别的日志级别
您可以为红帽构建的 Keycloak 中的特定区域设置不同的日志级别。使用这个命令提供您需要不同日志级别的类别列表:
bin/kc.[sh|bat] start --log-level="<root-level>,<org.category1>:<org.category1-level>"
应用到类别的配置也适用于其子类别,除非您包含更为具体的匹配子类别。
Example
bin/kc.[sh|bat] start --log-level="INFO,org.hibernate:debug,org.hibernate.hql.internal.ast:info"
这个示例设置以下日志级别:
- 所有日志记录器的根日志级别都设置为 INFO。
- 通常,hibernate 日志级别被设置为 debug。
-
要从创建详细日志输出中保留 SQL 抽象语法树,特定的子类别
org.hibernate.hql.internal.ast
设置为 info。因此,SQL 抽象语法树会被忽略,而不是出现在debug
级别中。