10.7. ログフォーマッターの設定
ログフォーマッターはハンドラーでのログメッセージの形式を定義します。
logging サブシステムを使用すると、以下のタイプのログフォーマッターを設定できます。
10.7.1. パターンフォーマッターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ログハンドラー間で使用する名前付きパターンフォーマッターを作成して、ログメッセージをフォーマットすることができます。
管理 CLI を使用すると、JBoss EAP のパターンフォーマッターを設定できます。または、管理コンソールから設定を設定するには、Configuration > Subsystems > Logging > Configuration と選択し、表示 をクリックして Formatter を選択し、Pattern Formatter オプションを選択します。
ロギングプロファイルにこのログフォーマッターを設定する場合は、/subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ を指定してコマンドを開始します。
さらに、マネージドドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
前提条件
- JBoss EAP が実行中である。
- 管理 CLI にアクセスできる。
手順
以下のコマンドを使用してパターンフォーマッターを作成します。
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)パターンフォーマッターを定義するとき、ログメッセージをフォーマットするパターン文字列を指定します。たとえば、デフォルトの設定はサーバーログメッセージに次のログフォーマッター文字列を使用します:
%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c](%t)%s%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以下のコマンドを使用してパターンフォーマッターの色マップを設定します。
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")カラーマップを定義して、ログレベルごとに色を割り当てます。形式は
LEVEL:COLORのコンマ区切りリストです。-
有効なレベル:
finest、finer、fine、config、trace、debug、info、warning、warn、error、fatal、severe -
有効な色:
black、green、red、yellow、blue、magenta、cyan、white、brightblack、brightred、brightgreen、brightblue、brightyellow、brightmagenta、brightcyan、brightwhite
-
有効なレベル:
10.7.2. JSON ログフォーマッターの設定 リンクのコピーリンクがクリップボードにコピーされました!
JSON 形式でログメッセージをフォーマットする JSON ログフォーマッターを作成できます。
管理 CLI を使用すると、JBoss EAP で JSON ログフォーマッターを設定できます。または、管理コンソールから設定を設定するには、Configuration > Subsystems > Logging > Configuration と選択し、表示 をクリックして Formatter を選択し、JSON Formatter オプションを選択します。
ロギングプロファイルにこのログフォーマッターを設定する場合は、/subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ を指定してコマンドを開始します。
さらに、マネージドドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
前提条件
- JBoss EAP が実行中である。
- 管理 CLI にアクセスできる。
手順
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 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 }以下のコマンドを使用して Logstash JSON ログフォーマッターを追加します。
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])注記JSON ログフォーマッター出力キーを変更し、静的メタデータを追加できます。JSON ログフォーマッターの主な目的は、ログメッセージを JSON 形式でフォーマットすることです。Logstash はこの JSON 出力を消費し、
@timestampおよび@versionフィールドを検索します。以下の例では、Logstash のメッセージをフォーマットする JSON ログフォーマッターを作成します。JSON フォーマッター属性は次のように使用できます。
-
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 ログフォーマッターを設定できます。または、管理コンソールから設定( Configuration
ロギングプロファイルにこのログフォーマッターを設定する場合は、/subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ を指定してコマンドを開始します。
さらに、マネージドドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
前提条件
- JBoss EAP が実行中である。
- 管理 CLI にアクセスできる。
手順
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属性を formatted に設定すると、例外をオブジェクトとしてフォーマットします。 -
exception-output-type属性をdetailedに設定して、例外スタックトレースを含めます。 -
exception-output-typeをdetailed-and-formattedに設定することにより、例外をオブジェクトとしてフォーマットし、スタックトレースを含めます。 -
meta-data属性を使用して、レコードにメタデータを追加します。
-
10.7.4. カスタムログフォーマッターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ログハンドラーすべてで使用するカスタムログフォーマッターを作成して、ログメッセージをフォーマットすることができます。
管理 CLI を使用すると、JBoss EAP でカスタムログフォーマッターを設定できます。または、管理コンソールから設定を行うには、Configuration > Subsystems > Logging > Configuration と選択し、表示 をクリックして Formatter を選択し、Custom Formatter オプションを選択します。
ロギングプロファイルにこのログフォーマッターを設定する場合は、/subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ を指定してコマンドを開始します。
さらに、マネージドドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
前提条件
- JBoss EAP が実行中である。
- 管理 CLI にアクセスできる。
手順
以下のコマンドを使用してカスタムログフォーマッターを追加します。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)注記カスタムログフォーマッターを追加するとき、フォーマッターの Java クラスとそれが含まれる JBoss EAP モジュールを指定します。このクラスは
java.util.logging.Formatterを拡張する必要があります。カスタムロガーが含まれる モジュールを作成していることを確認してください。作成されていないと、このコマンドの実行 に失敗します。以下のコマンドを使用してログフォーマッターのプロパティーを設定します。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)setter メソッドを使用してプロパティーにアクセスできなければなりません。
以下のコマンドを使用してカスタムフォーマッターをログハンドラーに割り当てます。
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)このコマンドは、Periodic rotating ファイルハンドラーで使用するカスタムフォーマッターを割り当てます。
以下の例は、カスタム XML フォーマッターを設定します。org.jboss.logmanager モジュールに提供される java.util.logging.XMLFormatter クラスを使用し、Console ログハンドラーに割り当てます。
例
/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)
想定される出力
<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>