16.4. 控制台日志处理程序


控制台日志处理程序默认启用,为控制台提供无结构日志消息。

16.4.1. 配置控制台日志格式

红帽 Keycloak 的构建使用基于模式的日志格式器,默认生成人类可读的文本日志。

这些行的日志记录格式模板可以在根级别上应用。默认格式模板为:

  • %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c](%t)%s%e%n

格式字符串支持下表中的符号:

符号Summary描述

%%

%

呈现简单的%字符。

%c

类别

呈现日志类别名称。

%d{xxx}

Date

使用 java.text.SimpleDateFormat定义的给定日期格式 string.String 语法呈现日期

%e

例外

呈现抛出异常。

%h

主机名

呈现简单的主机名。

%H

限定主机名

呈现完全限定主机名,该主机名可能与简单的主机名相同,具体取决于操作系统配置。

%i

进程 ID

呈现当前进程 PID。

%m

完整消息

如果抛出,则呈现日志消息和异常。

%n

换行符

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

%N

进程名称

呈现当前进程的名称。

%p

级别

呈现消息的日志级别。

%r

相对时间

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

%s

简单消息

仅在没有异常追踪的情况下呈现日志消息。

%t

线程名称

呈现线程名称。

%t{id}

线程 ID

呈现线程 ID。

%z{<zone name>}

timezone

将日志输出的时区设置为 <zone name>。

%L

行号

呈现日志消息的行号。

16.4.2. 设置日志记录格式

要为日志记录行设置日志记录格式,请执行以下步骤:

  1. 使用上表构建所需的格式模板。
  2. 输入以下命令:

    bin/kc.[sh|bat] start --log-console-format="'<format>'"

请注意,在使用 CLI 中调用包含特殊 shell 字符(如 )的命令时,您需要转义字符。 因此,请考虑在配置文件中设置它。

示例:缩写完全限定类别名称

bin/kc.[sh|bat] start --log-console-format="'%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n'"

本例通过将类别名称缩写为三个字符,方法是在模板中设置 [%c{3.}],而不是默认的 [%c]

16.4.3. 配置 JSON 或普通控制台日志记录

默认情况下,控制台日志处理程序会将普通非结构化数据记录到控制台。要使用结构化 JSON 日志输出,请输入以下命令:

bin/kc.[sh|bat] start --log-console-output=json

日志消息示例

{"timestamp":"2022-02-25T10:31:32.452+01:00","sequence":8442,"loggerClassName":"org.jboss.logging.Logger","loggerName":"io.quarkus","level":"INFO","message":"Keycloak 18.0.0-SNAPSHOT on JVM (powered by Quarkus 2.7.2.Final) started in 3.253s. Listening on: http://0.0.0.0:8080","threadName":"main","threadId":1,"mdc":{},"ndc":"","hostName":"host-name","processName":"QuarkusEntryPoint","processId":36946}

使用 JSON 输出时,颜色被禁用,不应用由 --log-console-format 设置设置。

要使用非结构的日志,请输入以下命令:

bin/kc.[sh|bat] start --log-console-output=default

日志消息示例

2022-03-02 10:36:50,603 INFO  [io.quarkus] (main) Keycloak 18.0.0-SNAPSHOT on JVM (powered by Quarkus 2.7.2.Final) started in 3.615s. Listening on: http://0.0.0.0:8080

16.4.4. colors

默认禁用无结构日志的带颜色的控制台日志输出。颜色可能会提高可读性,但在向外部日志聚合系统发送日志时可能会造成问题。要启用或禁用颜色编码的控制台日志输出,请输入以下命令:

bin/kc.[sh|bat] start --log-console-color=<false|true>

16.4.5. 配置控制台日志级别

控制台日志处理器的日志级别可由 --log-console-level 属性指定,如下所示:

bin/kc.[sh|bat] start --log-console-level=warn

如需更多信息,请参阅上面的 第 16.3 节 “为每个处理器指定日志级别” 部分。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.