wildflyでデプロイしたアプリケーションのログを専用のログファイルに出力する方法
こんにちは、小吉です。
今回はwildflyにデプロイしたアプリケーションのログを、デフォルトのserver.logではなく、専用のログファイルに出力する設定をしてみようと思います。wildflyのlogging(ロギング)サブシステムというものを使えば出来そうなので挑戦してみます。
前提
- Windows10環境であること
- wildfly16をインストール済みであること
- wildflyにlog4jを使ってログ出力するアプリケーションをデプロイ済みであること
- wildflyの管理コンソールにログインできること
過去記事で、以下のような手順を紹介してきました。
- IntelliJでwildflyを使ったHello Wolrdを素早く簡単に実施する手順
- JavaEEでlog4jを使って出力したログをwildflyのserver.logに出力する手順
- IntelliJ IDEAで生成したJavaEEのwarファイルをwildflyにデプロイする手順
これらの手順を実施すれば、上記の前提をクリアしていることになりますので、初心者の方などは、過去記事を順に実施して頂ければと思います。
ロギングサブシステムについて
本記事では、wildflyのロギングサブシステムの具体的な説明は割愛しますが、以下ポイントを押さえておいておけばとりあえず使えるかと思います。
- アプリケーションでlog4jを使って出力していたログをwildflyのロギングサブシステムの設定でコントロールできる。
- どのアプリケーションのログを扱うかをログカテゴリーとして定義する。
- ログをどう扱うかをログハンドラーとして定義する。
- ログハンドラ―はログカテゴリーに紐づける。
百聞は一見に如かず!ということで、やってみましょう!
ログハンドラーを作成する
管理コンソールにログインして、画面右上のConfigurationを選択します。
Subsystems -> Logging -> Configuration と辿ってViewボタンを選択します。
すると、以下のようなロギングの設定画面が表示されます。
左メニューから、Handler -> File Handler を選択します。
以下のようなFile Handlerの設定画面が表示されます。
File Handlerとは、ログハンドラーの一つで、ログをファイルに出力するログハンドラーです。今回はアプリケーションのログを専用ファイルに出力したいので、ログハンドラーを追加します。画面右にあるAddを選択します。
ログハンドラーの情報を入力する画面が表示されるので、以下を入力してAddを選択します。
Name: HELLOWORLD
File / Path: helloworld.log
->ログ出力ファイル名
File / Relative To: jboss.server.log.dir
->ログ出力フォルダ
->上記設定は、C:\wildfly-16.0.0.Final\standalone\logのことです。
Formatter: (default)
Level: ALL
これでログハンドラーの作成は完了です。
C:\wildfly-16.0.0.Final\standalone\configuration\standalone.xml
に、以下のような設定が書き込まれているはずです。
ログカテゴリーを作成する
左メニューから、Categories を選択します。
以下のようなCategoriesの設定画面が表示されます。
ログカテゴリーには、どのアプリケーションのログをキャプチャするかを定義する形で追加します。画面右にあるAddを選択します。
ログカテゴリーの情報を入力する画面が表示されるので、以下を入力してAddを選択します。
Name: HelloWorld
->アプリケーションのパッケージ名やクラス名を記入します。過去記事で作成したHalloWorldクラスのログをキャプチャしたいため、HelloWorldとしています。
Level: ALL
Handlers: HELLOWORLD
->先程作成したログハンドラーを指定します。
Use Parent Handlers: (default)
これでログカテゴリーの作成は完了です。
C:\wildfly-16.0.0.Final\standalone\configuration\standalone.xml
に、以下のような設定が書き込まれているはずです。
ログ出力確認
それでは、デプロイしたアプリケーションに対して、ログ出力するようなリクエストを送ってみましょう。
過去記事を参考に進めてくれた場合は、以下のURLにアクセスすると、infoログが出力されるようになっていますのでアクセスしてみてください。
http://127.0.0.1:8181/web_war/helloworld
その後、C:\wildfly-16.0.0.Final\standalone\log直下に、helloworld.logというログファイルが生成されているので、中身を見てみましょう。
アプリケーションのログのみ出力されていますね!
これで、アプリケーションの専用のログファイルを作成することが出来ました。
今後、ログカテゴリーやログハンドラーの細かい設定もいじってみたいと思っています。
最後までお読み頂きありがとうございました。
参考書籍
-
前の記事
IntelliJ IDEAで生成したJavaEEのwarファイルをwildflyにデプロイする手順 2019.05.29
-
次の記事
wildflyのロギングサブシステムで出てくるルートロガー・ロガー(ログカテゴリ)・ログハンドラーについての解説 2019.06.05