10.7. 配置日志格式器


日志格式器定义来自处理程序的日志消息的外观。

logging 子系统允许您配置以下类型的日志格式:

10.7.1. 配置模式格式

您可以创建命名的模式格式ter,用于跨日志处理程序来格式化日志消息。

您可以使用管理 CLI 在 JBoss EAP 中配置模式格式化器。另外,您可以通过管理控制台配置它们,导航到 Configuration > Subsystems > Logging > Configuration,点 View,选择 Formatter,然后选择 Pattern Formatter 选项。

重要

如果您为日志记录配置集配置此日志格式器,请使用 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/ 来启动该命令。

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

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问管理 CLI。

流程

  1. 使用以下命令创建模式格式器:

    /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%e%n

    Example

    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

  2. 使用以下命令为模式格式器设置颜色映射:

    /subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
    Copy to Clipboard Toggle word wrap

    定义颜色映射,为不同的日志级别分配颜色。格式是用逗号分开的 LEVEL 列表:COLOR

    • 有效级别:t、t、t、t、configtracedebuginfowarningwarnerrorfatal严重
    • 有效颜色: 黑色,green,red, blue ,blue,magenta,cyan,white,brightblack, brightgreen,brightblue,brightyellow ,brightmagenta,brightcyan,brightwhite

10.7.2. 配置 JSON 日志格式器

您可以创建一个 JSON 日志格式器来格式化 JSON 中的日志消息。

您可以使用管理 CLI 在 JBoss EAP 中配置 JSON 日志格式ter。另外,您可以通过管理控制台配置它们,导航到 Configuration > Subsystems > Logging > Configuration,点 View,选择 Formatter,然后选择 JSON Formatter 选项。

重要

如果您为日志记录配置集配置此日志格式器,请使用 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/ 来启动该命令。

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

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问管理 CLI。

流程

  1. 添加 JSON 日志格式器。

    Example

    /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 8.1.0.GA (WildFly Core 21.0.5.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

  2. 使用以下命令添加 Logstash JSON 日志格式ter:

    /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 日志格式化器输出密钥并添加静态元数据。JSON 日志格式器的主要用途是在 JSON 中格式化日志消息。Logstash 会消耗此 JSON 输出并搜索 @timestamp@version 字段。以下示例创建一个 JSON 日志格式器,用于格式化 Logstash 的信息。

    您可以使用 JSON formatter 属性,如下所示:

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

10.7.3. 配置 XML 日志格式器

您可以创建一个 XML 日志格式器来格式化 XML 中的日志消息。

您可以使用管理 CLI 在 JBoss EAP 中配置 XML 日志格式ter。另外,您可以通过管理控制台配置它们,方法是导航到 Configuration Subsystems Logging Configuration,点 View,选择 Formatter,然后选择 XML Formatter 选项。

重要

如果您为日志记录配置集配置此日志格式器,请使用 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/ 来启动该命令。

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

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问管理 CLI。

流程

  1. 添加 XML 日志格式器。

    Example

    /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

  2. 使用以下命令添加密钥覆盖 XML 日志格式ter:

    /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 formatter 属性,如下所示:

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

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

您可以创建自定义日志格式ter来跨日志处理程序使用,以格式化日志消息。

您可以使用管理 CLI 在 JBoss EAP 中配置自定义日志格式器。另外,您可以通过管理控制台配置它们,导航到 Configuration > Subsystems > Logging > Configuration,点 View,选择 Formatter,然后选择 Custom Formatter 选项。

重要

如果您为日志记录配置集配置此日志格式器,请使用 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 而不是 /subsystem=logging/ 来启动该命令。

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

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问管理 CLI。

流程

  1. 使用以下命令添加自定义日志格式ter:

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
    Copy to Clipboard Toggle word wrap
    注意

    添加自定义日志格式器时,指定 formatter 的 Java 类和包含它的 JBoss EAP 模块。此类必须扩展 java.util.logging.Formatter。确保 您已创建了包含自定义日志记录器的模块,否则此命令将失败。

  2. 使用以下命令设置日志格式器的属性:

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
    Copy to Clipboard Toggle word wrap

    属性必须使用 setter 方法访问。

  3. 使用以下命令为日志处理器分配自定义格式器:

    /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 格式。它使用 org.jboss.logmanager 模块中提供的 java.util.logging.XMLFormatter 类,并将其分配给控制台日志处理程序。

Example

/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=java.logging)
/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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat