11.7. ログフォーマッターの設定
ログフォーマッターはハンドラーでのログメッセージの形式を定義します。logging
サブシステムでは以下のログフォーマッターを設定できます。
11.7.1. パターンフォーマッターの設定
ログハンドラーすべてで使用できる名前付きパターンフォーマッターを作成して、ログメッセージをフォーマットすることができます。
ロギングプロファイルにこのログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/
ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME
を付けます。
パターンフォーマッターの作成
パターンフォーマッターを定義するとき、ログメッセージのフォーマットに使用するパターン文字列を指定します。パターン構文の詳細は、パターンフォーマッターのフォーマット文字 を参照してください。
/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
また、カラーマップを定義してログレベルごとに色を割り当てることもできます。形式は 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
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
管理コンソールを使用してパターンログフォーマッターを設定することもできます。
- ブラウザーで管理コンソールを開きます。
- Configuration → Subsystems → Logging と選択します。
- Configuration を選択し、表示 をクリックします。
- Formatter を選択し、Pattern Formatter オプションを選択します。
11.7.2. カスタムログフォーマッターの設定
JSON 形式でログメッセージをフォーマットする JSON ログフォーマッターを作成できます。
ロギングプロファイルにこのログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/
ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /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.3.0.GA (WildFly Core 10.0.0.Final-redhat-20190924) started in 5672ms - Started 495 of 679 services (331 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 ログフォーマッターの追加
JSON ログフォーマッター出力キーを変更し、静的メタデータを追加できます。JSON ログフォーマッターの主な目的は、ログメッセージを JSON 形式でフォーマットすることです。Logstash はこの JSON 出力を消費し、@timestamp
および @version
のフィールドを検索します。以下の例では、Logstash のメッセージをフォーマットする JSON ログフォーマッターを作成します。
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
JSON フォーマッター属性は以下の説明どおりに使用できます。
-
key-overrides
属性は、定義されたキーの名前をオーバーライドするために使用できます。 -
exception-output-type
属性をformatted
に設定すると、例外をオブジェクトとしてフォーマットできます。 -
exception-output-type
属性をdetailed
に設定すると、例外スタックトレースを含めることができます。 -
exception-output-type
属性をdetailed-and-formatted
に設定すると、例外をオブジェクトとしてフォーマットし、スタックトレースを含めることができます。 -
meta-data
属性を使用すると、メタデータをログレコードに追加できます。
JSON フォーマッター属性の詳細は JSON ログフォーマッター属性 を参照してください。
管理コンソールを使用して JSON ログフォーマッターを設定することもできます。
- ブラウザーで管理コンソールを開きます。
- Configuration → Subsystems → Logging と選択します。
- Configuration を選択し、表示 をクリックします。
- Formatter を選択し、JSON Formatter オプションを選択します。
11.7.3. XML ログフォーマッターの設定
XML 形式でログメッセージをフォーマットする XML ログフォーマッターを作成できます。
ロギングプロファイルにこのログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/
ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /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: JBoss EAP 7.3.0.GA (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
属性を使用すると、メタデータをログレコードに追加できます。
XML フォーマッター属性の詳細は XML ログフォーマッター属性 を参照してください。
管理コンソールを使用して XML ログフォーマッターを設定することもできます。
- ブラウザーで管理コンソールを開きます。
- Configuration → Subsystems → Logging と選択します。
- Configuration を選択し、表示 をクリックします。
- Formatter を選択し、XML Formatter オプションを選択します。
11.7.4. カスタムログフォーマッターの設定
ログハンドラーすべてで使用できるカスタムログフォーマッターを作成して、ログメッセージをフォーマットすることができます。
ここでは、管理 CLI を使用してカスタムログフォーマッターを設定する方法を説明します。
カスタムログフォーマッターの設定
ロギングプロファイルにこのログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/
ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/
になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /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 コマンドは、Periodic Rotating ファイルハンドラーによって使用されるカスタムフォーマッターを割り当てます。
/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
クラスを使用し、Console ログハンドラーに割り当てます。
/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 を選択し、表示 をクリックします。
- Formatter を選択し、Custom Formatter オプションを選択します。