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 列表。
-
有效的级别:
terter、fine、config、trace、debug、info、warning、error、fatal、严重 -
有效颜色:
黑、绿色、红色、黄色、yan、蓝色、magenta、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 选项。