11.7. 配置日志格式


日志格式ter 定义来自该处理程序的日志消息的外观。日志记录 子系统允许您配置以下类型的日志格式器:

11.7.1. 配置模式格式

您可以创建名为模式格式器,可在日志处理程序之间用于格式化日志消息。

重要

如果您要为日志记录配置集配置此日志格式器,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/

此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME

创建模式格式

在定义模式格式器时,您可以提供一个用于格式化日志消息的模式字符串。如需有关模式语法的更多信息,请参阅 Pattern Formatter 的格式字符

/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)
Copy to Clipboard Toggle word wrap

例如,默认配置使用以下日志格式器字符串将消息记录到服务器日志: %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c](%t)%s%s%e%e%n。这会创建类似于下方格式的日志消息。

2016-03-18 15:49:32,075 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
Copy to Clipboard Toggle word wrap

您还可以定义颜色映射,为不同的日志级别分配颜色。格式为以逗号分隔的 LEVEL :COLOR 列表。

  • 有效的级别: ter ter fineconfigtracedebuginfo、warning error fatal严重
  • 有效颜色: 绿色红色黄色、蓝色、mag enta、c yan、白色、亮色、亮度 亮色、亮色、亮色、 亮色亮色亮色、亮色亮度、精英代理、度、 亮度、 亮度
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
Copy to Clipboard Toggle word wrap

您还可以使用管理控制台配置模式日志格式器:

  1. 在浏览器中打开管理控制台。
  2. 选择 Configuration Subsystems Logging
  3. 选择 Configuration,然后单击 View
  4. 选择 Formatter,然后选择 Pattern Formatter 选项。

11.7.2. 配置 JSON 日志格式器

您可以创建一个 JSON 日志格式器,以将日志消息格式化为 JSON。

重要

如果您要为日志记录配置集配置此日志格式器,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/

此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME

添加 JSON 日志格式
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)
Copy to Clipboard Toggle word wrap

这会创建类似于下方格式的日志消息。

{
    "timestamp": "2018-10-18T13:53:43.031-04:00",
    "sequence": 62,
    "loggerClassName": "org.jboss.as.server.logging.ServerLogger_$logger",
    "loggerName": "org.jboss.as",
    "level": "INFO",
    "message": "WFLYSRV0025: JBoss EAP 7.4.0.GA (WildFly Core 15.0.2.Final-redhat-00001) started in 5227ms - Started 317 of 556 services (343 services are lazy, passive or on-demand),
    "threadName": "Controller Boot Thread",
    "threadId": 22,
    "mdc": {
    },
    "ndc": "",
    "hostName": "localhost.localdomain",
    "processName": "jboss-modules.jar",
    "processId": 7461
}
Copy to Clipboard Toggle word wrap
添加 Logstash JSON 日志格式ter
注意

您可以修改 JSON 日志格式输出键并添加静态元数据。JSON 日志格式器的主要用途是在 JSON 中格式化日志消息。logstash 会消耗这个 JSON 输出,并搜索字段 @timestamp@version。以下示例创建了 JSON 日志格式,用于格式化 Logstash 的信息。

/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
Copy to Clipboard Toggle word wrap

您可以使用 JSON 格式属性,如下所述:

  • key-overrides 属性可用于覆盖定义的键的名称。
  • 例外可以通过将 exception-output-type 属性设置为 格式化来格式化 为对象。
  • 可以通过将 exception-output-type 属性设置为 detailed 来包含异常堆栈追踪。
  • 通过将 exception-output-type 设置为 详细和格式,可以包含例外,作为对象和堆栈追踪。
  • 可以使用 meta-data 属性将元数据添加到日志记录中。

如需有关 JSON 格式器属性的更多信息,请参阅 JSON 日志格式ter Attributes

您还可以使用管理控制台配置 JSON 日志格式器:

  1. 在浏览器中打开管理控制台。
  2. 选择 Configuration Subsystems Logging
  3. 选择 Configuration,然后单击 View
  4. 选择 Formatter,然后选择 JSON Formatter 选项。

11.7.3. 配置 XML 日志格式

您可以创建一个 XML 日志格式器,以将日志消息格式化为 XML。

重要

如果您要为日志记录配置集配置此日志格式器,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/

此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME

添加 XML 日志格式
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)
Copy to Clipboard Toggle word wrap

这会创建类似于下方所示的日志消息。

<record>
    <timestamp>2018-10-18T13:55:53.419-04:00</timestamp>
    <sequence>62</sequence>
    <loggerClassName>org.jboss.as.server.logging.ServerLogger_$logger</loggerClassName>
    <loggerName>org.jboss.as</loggerName>
    <level>INFO</level>
    <message>WFLYSRV0025: {ProductCurrentVersionExamples} (WildFly Core 10.0.0.Final-redhat-20190924) started in 6271ms - Started 495 of 679 services (331 services are lazy, passive or on-demand)</message>
    <threadName>Controller Boot Thread</threadName>
    <threadId>22</threadId>
    <mdc>
    </mdc>
    <ndc></ndc>
    <hostName>localhost.localdomain</hostName>
    <processName>jboss-modules.jar</processName>
    <processId>7790</processId>
</record>
Copy to Clipboard Toggle word wrap
添加密钥覆盖 XML 日志格式
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, print-namespace=true, namespace-uri="urn:custom:1.0", key-overrides={message=msg, record=logRecord, timestamp=date}, print-details=true)
Copy to Clipboard Toggle word wrap

您可以使用 XML 格式属性,如下所述:

  • key-overrides 属性可用于覆盖定义的键的名称。
  • 例外可以通过将 exception-output-type 属性设置为 格式化来格式化 为对象。
  • 可以通过将 exception-output-type 属性设置为 detailed 来包含异常堆栈追踪。
  • 通过将 exception-output-type 设置为 详细和格式,可以包含例外,作为对象和堆栈追踪。
  • 可以使用 meta-data 属性将元数据添加到日志记录中。

有关 XML 格式 器属性的更多信息,请参阅 XML 日志格式条件属性

您还可以使用管理控制台配置 XML 日志格式器:

  1. 在浏览器中打开管理控制台。
  2. 选择 Configuration Subsystems Logging
  3. 选择 Configuration,然后单击 View
  4. 选择 Formatter,然后选择 XML Formatter 选项。

11.7.4. 配置自定义日志格式器

您可以创建自定义日志格式器,供日志处理程序用于格式化日志消息。

本节介绍如何使用管理 CLI 配置自定义日志格式器。

配置自定义日志格式器
重要

如果您要为日志记录配置集配置此日志格式器,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/

此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME

  1. 添加自定义日志格式器。

    在添加自定义日志格式器时,您必须指定格式器的 Java 类以及包含它的 JBoss EAP 模块。该类必须扩展 java.util.logging.Formatter

    注意

    您必须已创建了包含自定义格式的模块,否则此命令将失败。

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
    Copy to Clipboard Toggle word wrap
  2. 设置日志格式器所需的属性。

    属性必须能够通过 setter 方法访问。

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
    Copy to Clipboard Toggle word wrap
  3. 将自定义格式器分配到日志处理程序。

    以下管理 CLI 命令分配可由定期轮转文件处理程序使用的自定义格式器:

    /subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
    Copy to Clipboard Toggle word wrap
自定义 XML 格式示例

以下示例配置了自定义 XML 格式。它使用 org.jboss .logmanager 模块中提供的 java.util.logging. XMLFormatter 类,并将它分配给控制台日志处理程序。

/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=org.jboss.logmanager)
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=custom-xml-formatter)
Copy to Clipboard Toggle word wrap

使用此格式器的日志消息将如下格式:

<record>
  <date>2016-03-23T12:58:13</date>
  <millis>1458752293091</millis>
  <sequence>93963</sequence>
  <logger>org.jboss.as</logger>
  <level>INFO</level>
  <class>org.jboss.as.server.BootstrapListener</class>
  <method>logAdminConsole</method>
  <thread>22</thread>
  <message>WFLYSRV0051: Admin console listening on http://%s:%d</message>
  <param>127.0.0.1</param>
  <param>9990</param>
</record>
Copy to Clipboard Toggle word wrap
使用管理控制台配置自定义日志格式器

您还可以使用管理控制台配置日志格式器。

  1. 在浏览器中打开管理控制台。
  2. 选择 Configuration Subsystems Logging
  3. 选择 Configuration,然后单击 View
  4. 选择 Formatter,然后选择 Custom Formatter 选项。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat