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。
流程
使用以下命令创建模式格式器:
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在定义模式格式化器时,请提供模式字符串来格式化日志消息。例如,默认配置为服务器日志消息使用以下日志格式字符串:
%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
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 Copied! Toggle word wrap Toggle overflow 使用以下命令为模式格式器设置颜色映射:
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 定义颜色映射,为不同的日志级别分配颜色。格式是用逗号分开的
LEVEL 列表:COLOR
。-
有效级别:t、
t
、t、t、config
、trace
、debug
、info
、warning
、warn
、error
、fatal
、严重
-
有效颜色:
黑色
,green
,red
, blue ,blue
,magenta
,cyan
,white
,brightblack
,brightgreen
,brightblue
,bright
,yellow
brightmagenta
,brightcyan
,brightwhite
-
有效级别:t、
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。
流程
添加 JSON 日志格式器。
Example
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令添加 Logstash JSON 日志格式ter:
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以修改 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
如果您为日志记录配置集配置此日志格式器,请使用 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
而不是 /subsystem=logging/
来启动该命令。
另外,如果您在受管域中运行,请在命令前面加上 /profile=PROFILE_NAME
。
先决条件
- JBoss EAP 正在运行。
- 您可以访问管理 CLI。
流程
添加 XML 日志格式器。
Example
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令添加密钥覆盖 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)
/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 Copied! Toggle word wrap Toggle overflow 您可以使用 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。
流程
使用以下命令添加自定义日志格式ter:
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意添加自定义日志格式器时,指定 formatter 的 Java 类和包含它的 JBoss EAP 模块。此类必须扩展
java.util.logging.Formatter
。确保 您已创建了包含自定义日志记录器的模块,否则此命令将失败。使用以下命令设置日志格式器的属性:
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 属性必须使用 setter 方法访问。
使用以下命令为日志处理器分配自定义格式器:
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令分配由定期轮转文件处理程序使用的自定义格式器。
以下示例配置了自定义 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)
/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)
预期输出