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)
例如,默认配置使用以下日志格式器字符串将消息记录到服务器日志: %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
您还可以定义颜色映射,为不同的日志级别分配颜色。格式为以逗号分隔的 LEVEL :COLOR
列表。
-
有效的级别:
ter
ter、
fine
、config
、trace
、debug
、info、warning
、
error
、fatal
、严重
-
有效颜色:
黑
、绿色
、红色
、黄色、
yan、蓝色、mag
enta
、c白色
、亮色、亮度、
亮色、亮色、
、亮色、
亮色亮色
、亮色、亮色
、亮度、精英
亮度代理、
亮度、
亮度、
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
您还可以使用管理控制台配置模式日志格式器:
- 在浏览器中打开管理控制台。
- 选择 Configuration → Subsystems → Logging。
- 选择 Configuration,然后单击 View。
- 选择 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)
这会创建类似于下方格式的日志消息。
{ "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 }
添加 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])
您可以使用 JSON 格式属性,如下所述:
-
key-overrides
属性可用于覆盖定义的键的名称。 -
例外可以通过将
exception-output-type
属性设置为格式化来格式化
为对象。 -
可以通过将
exception-output-type
属性设置为detailed
来包含异常堆栈追踪。 -
通过将
exception-output-type
设置为详细和格式,可以包含例外,作为对象和堆栈追踪。
-
可以使用
meta-data
属性将元数据添加到日志记录中。
如需有关 JSON 格式器属性的更多信息,请参阅 JSON 日志格式ter Attributes。
您还可以使用管理控制台配置 JSON 日志格式器:
- 在浏览器中打开管理控制台。
- 选择 Configuration → Subsystems → Logging。
- 选择 Configuration,然后单击 View。
- 选择 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)
这会创建类似于下方所示的日志消息。
<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>
添加密钥覆盖 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)
您可以使用 XML 格式属性,如下所述:
-
key-overrides
属性可用于覆盖定义的键的名称。 -
例外可以通过将
exception-output-type
属性设置为格式化来格式化
为对象。 -
可以通过将
exception-output-type
属性设置为detailed
来包含异常堆栈追踪。 -
通过将
exception-output-type
设置为详细和格式,可以包含例外,作为对象和堆栈追踪。
-
可以使用
meta-data
属性将元数据添加到日志记录中。
有关 XML 格式 器属性的更多信息,请参阅 XML 日志格式条件属性。
您还可以使用管理控制台配置 XML 日志格式器:
- 在浏览器中打开管理控制台。
- 选择 Configuration → Subsystems → Logging。
- 选择 Configuration,然后单击 View。
- 选择 Formatter,然后选择 XML Formatter 选项。
11.7.4. 配置自定义日志格式器
您可以创建自定义日志格式器,供日志处理程序用于格式化日志消息。
本节介绍如何使用管理 CLI 配置自定义日志格式器。
配置自定义日志格式器
如果您要为日志记录配置集配置此日志格式器,则命令的开头为 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
而不是 /subsystem=logging/
。
此外,如果您在受管域中运行,请在命令前加上 /profile=PROFILE_NAME
。
添加自定义日志格式器。
在添加自定义日志格式器时,您必须指定格式器的 Java 类以及包含它的 JBoss EAP 模块。该类必须扩展
java.util.logging.Formatter
。注意您必须已创建了包含自定义格式的模块,否则此命令将失败。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
设置日志格式器所需的属性。
属性必须能够通过 setter 方法访问。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
将自定义格式器分配到日志处理程序。
以下管理 CLI 命令分配可由定期轮转文件处理程序使用的自定义格式器:
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
自定义 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)
使用此格式器的日志消息将如下格式:
<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>
使用管理控制台配置自定义日志格式器
您还可以使用管理控制台配置日志格式器。
- 在浏览器中打开管理控制台。
- 选择 Configuration → Subsystems → Logging。
- 选择 Configuration,然后单击 View。
- 选择 Formatter,然后选择 Custom Formatter 选项。