第 13 章 配置日志记录
红帽构建的 Keycloak 使用 JBoss Logging 框架。以下是可用日志处理程序的高级概述:
root
- 控制台(默认)
- file
13.1. 日志记录配置
日志记录是在红帽构建的 Keycloak 中按类别进行的。您可以为 root 日志级别或更具体的类别配置日志记录,如 org.hibernate
或 org.keycloak
。本章论述了如何配置日志记录。
13.1.1. 日志级别
下表定义了可用的日志级别。
级别 | 描述 |
---|---|
FATAL | 因无法满足任何类型的请求而造成关键故障。 |
ERROR | 造成无法处理请求的重大错误或问题。 |
WARN | 可能需要立即修正的非关键错误或问题。 |
INFO | 红帽构建的 Keycloak 生命周期事件或重要信息。低频率。 |
DEBUG | 用于调试目的的更多详细信息,如数据库日志。更高的频率。 |
TRACE | 最详细的调试信息。非常高的频率。 |
ALL | 所有日志消息的特殊级别。 |
OFF | 用于完全关闭日志记录的特殊级别(不推荐)。 |
13.1.2. 配置 root 日志级别
如果没有用于更具体的类别日志记录器的日志级别配置,则改为使用分隔类别。如果没有分隔类别,则使用根日志记录器级别。
要设置 root 日志级别,请输入以下命令:
bin/kc.[sh|bat] start --log-level=<root-level>
为这个命令使用这些指南:
-
对于
<root-level
>,请提供上表中定义的级别。 -
日志级别区分大小写。例如,您可以使用
DEBUG
或debug
。 -
如果您要意外设置日志级别两次,则列表中最后一次出现的日志级别将变为日志级别。例如,如果您包含语法
--log-level="info,…,DEBUG,…"
,根日志记录器为DEBUG
。
13.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
级别。