8.12. 起動可能な JAR の JSON ロギングの有効化
CLI スクリプトを使用してサーバーロギング設定を設定すると、起動可能な JAR の JSON ロギングを有効にできます。JSON ロギングを有効にすると、JSON フォーマッターを使用してログメッセージを JSON 形式で表示できます。
この手順の例では、ベアメタルプラットフォームおよび OpenShift プラットフォームで、起動可能な JAR の JSON ロギングを有効にする方法を説明します。
前提条件
-
MAVEN_PLUGIN_VERSION.X.GA.Final-redhat-00001などの最新の Maven プラグインバージョンを確認している。MAVEN_PLUGIN_VERSION はメジャーバージョンで、X はマイクロバージョンです。/ga/org/wildfly/plugins/wildfly-jar-maven-plugin のインデックス を参照してください。 -
2.0.X.GA-redhat-BUILD_NUMBERなどの最新の Galleon 機能パックバージョンを確認している。X は JBoss EAP XP 2 のミーラーバージョンで、BUILD_NUMBER は Galleon 機能パックのビルド番号。X と BUILD_NUMBER は、JBoss EAP XP 2.0.0 製品のライフサイクル中に進化できます。Index of /ga/org/jboss/eap/wildfly-galleon-pack のインデックス を参照してください。 Maven プロジェクトを作成し、親依存関係を設定して、アプリケーションを作成するための依存関係を追加している。起動可能な JAR Maven プロジェクトの作成 を参照してください。
重要Maven プロジェクトの Maven archetype で、プロジェクト固有の groupID および artifactID を指定する必要があります。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この手順の例では、以下のプロパティーを指定します。
-
Maven プラグインバージョンの場合は、
${bootable.jar.maven.plugin.version}です。 -
Galleon 機能パックバージョンの場合は、
${jboss.xp.galleon.feature.pack.version}です。
これらのプロパティーをプロジェクトで設定する必要があります。以下に例を示します。
<properties> <bootable.jar.maven.plugin.version>2.0.2.Final-redhat-00001</bootable.jar.maven.plugin.version> <jboss.xp.galleon.feature.pack.version>2.0.0.GA-redhat-00002</jboss.xp.galleon.feature.pack.version> </properties><properties> <bootable.jar.maven.plugin.version>2.0.2.Final-redhat-00001</bootable.jar.maven.plugin.version> <jboss.xp.galleon.feature.pack.version>2.0.0.GA-redhat-00002</jboss.xp.galleon.feature.pack.version> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Maven プラグインバージョンの場合は、
手順
BOM によって管理される JBoss Logging および JAX-RS 依存関係を、プロジェクトの
pom.xmlファイルの<dependencies>セクションに追加します。例を以下に示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容を
pom.xmlファイルの<build>要素に追加します。最新バージョンの Maven プラグインと、org.jboss.eap:wildfly-galleon-packGalleon 機能パックの最新バージョンを指定する必要があります。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow java ファイルを保存するディレクトリーを作成します。
mkdir -p APPLICATION_ROOT/src/main/java/com/example/logging/
$ mkdir -p APPLICATION_ROOT/src/main/java/com/example/logging/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOTは、アプリケーションのpom.xml設定ファイルが含まれるディレクトリーです。以下の内容で
Java ファイル RestApplication.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/logging/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で Java ファイル
HelloWorldEndpoint.javaを作成し、ファイルをAPPLICATION_ROOT/src/main/java/com/example/logging/ディレクトリーに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow configure-oidc.cliなどの CLI スクリプトを作成し、APPLICATION_ROOT/scriptsディレクトリーなどの起動可能な JAR のアクセス可能なディレクトリーに保存します。APPLICATION_ROOTは Maven プロジェクトのルートディレクトリーです。スクリプトには以下のコマンドが含まれている必要があります。/subsystem=logging/logger=com.example.logging:add(level=ALL) /subsystem=logging/json-formatter=json-formatter:add(exception-output-type=formatted, pretty-print=false, meta-data={version="1"}, key-overrides={timestamp="@timestamp"}) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=ALL) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=json-formatter)/subsystem=logging/logger=com.example.logging:add(level=ALL) /subsystem=logging/json-formatter=json-formatter:add(exception-output-type=formatted, pretty-print=false, meta-data={version="1"}, key-overrides={timestamp="@timestamp"}) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=ALL) /subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=json-formatter)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグイン
<configuration>要素に以下の設定抽出を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例は、アプリケーションの JSON
ロギングを有効にするためにサーバーロギング設定ファイルを変更する logging.cliCLI スクリプトを示しています。アプリケーションを起動可能な JAR としてパッケージ化します。
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: JBoss EAP ベアメタルプラットフォームでアプリケーションを実行するには、JBoss EAP ベアメタルプラットフォームでの起動可能な JAR の使用 にある手順に従いますが、以下の違いがあります。
アプリケーションを起動します。
mvn wildfly-jar:run
mvn wildfly-jar:runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検証: ブラウザーで http://127.0.0.1:8080/hello に URL を指定すると、アプリケーションにアクセスできます。
予期される出力: アプリケーションコンソールで
com.example.logging.HelloWorldEndpointデバッグトレースを含む JSON 形式のログを表示できます。
オプション: JBoss EAP OpenShift プラットフォームでアプリケーションを実行するには、以下の手順を実行します。
<cloud/>要素をプラグイン設定に追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをリビルドします。
mvn clean package
$ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc loginコマンドを使用して、OpenShift インスタンスにログインします。 OpenShift で新しいプロジェクトを作成します。以下に例を示します。
oc new-project bootable-jar-project
$ oc new-project bootable-jar-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ocコマンドを入力してアプリケーションイメージを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのデプロイ:
oc new-app logging oc expose svc/logging
$ oc new-app logging $ oc expose svc/loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートの URL を取得します。
oc get route logging --template='{{ .spec.host }}'$ oc get route logging --template='{{ .spec.host }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドから返された URL を使用して、Web ブラウザーでアプリケーションにアクセスします。以下に例を示します。
http://ROUTE_NAME/hello
http://ROUTE_NAME/helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verfication: 以下のコマンドを実行して、利用可能な OpenShift Pod の一覧を表示し、Pod のビルドステータスを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの実行中の Pod ログにアクセスします。
APP_POD_NAMEは、実行中の Pod ロギングアプリケーションの名前です。oc logs APP_POD_NAME
$ oc logs APP_POD_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 想定される結果: Pod ログは JSON 形式であり、
com.example.logging.HelloWorldEndpointデバッグトレースが含まれます。