ロギングの仕組み
YellowfinやTomcatのログファイルは、トラブルシューティングや、現在の実行状況を把握する際に非常に役立ちます。
(デフォルトオプションを含む)ログファイルの一覧は以下の通りです。
ログ名 | ディレクトリパス | 説明 |
YellowfinInstallLog-YYYYMMDD.log (YYYYMMDDは、インストールを実行した日付です) | Yellowfin application フォルダー内のディレクトリ | インストールログファイルです。選択したすべてのインストールオプションが、インストール中に発生したエラーと合わせて記録されます。 |
YellowfinPatchLog–YYYYMMDD.log (YYYYMMDDは、更新を実行した日付です) | Yellowfin application フォルダー内のディレクトリ(更新が実行された場合) | 更新インストールログファイルです。(データベースの更新など)更新情報や、発生したエラーを記録します。ログファイルは、更新を実行する度に作成されます。 |
Yellowfin.log | appserver > logs | Yellowfin アプリケーションログファイルです。起動やレポートの実行、アイテムのエクスポートなど、Yellowfinで実行されるプロセスやタスクを記録します。また、大部分のアプリケーションエラーを取得します。 デフォルトでは、ファイルが1024KBに達すると新しいファイルが作成され、最大で9ファイルまで作成します(例:Yellowfin.log.1, Yellowfin.log.2, などのように、常に最新のデータがYellowfin.logに格納され、最も古いデータが最大数のファイル名に格納されます)。必要に応じて、ファイルのサイズや数を調整できます。 また、デバッグロギングを有効にすることで、追加情報を記録することもできます。 |
JDBC.log | appserver > logs | Yellowfin システム構成データベースログファイルです。これは、リポジトリデータベースの起動や接続エラーを記録します。 |
source.XXXX.log (XXXXはデータソースのIDです) | appserver > logs | これらのファイルには、データソースに特異な接続情報が含まれます。各データソースは独自のIDを持つため、それぞれのデータソースに対する個別のログファイルが存在します。データソースを削除してもログファイルは削除されないため、手動で削除する必要があります。 |
catalina.YYYY-MM-DD.log (YYYY-MM-DDは、Tomcatが起動した日付です) | appserver > logs | Tomcat 起動ログファイルです。サービス起動中に発生したエラーを記録します。 |
yellowfin-stdout_YYYY-MM-DD.log (「yellowfin-」はWindows サービスの名前であり、YYYY-MM-DDはYellowfinを起動した日付です) | appserver > logs | 注意:このファイルは、YellowfinをWindows サービスとしてインストールした場合にのみ生成されます。 通常コンソールログ(Yellowfin起動時に開く黒いウィンドウ)に表示される情報を記録します。 |
yellowfin-stderr_YYYY-MM-DD.log (「yellowfin-」はWindows サービスの名前であり、YYYY-MM-DDはYellowfinを起動した日付です) | appserver > logs | 注意:このファイルは、YellowfinをWindows サービスとしてインストールした場合にのみ生成されます。 stdoutログファイルと同様のエラーを記録しますが、その他のプロセスは一切記録しません。 |
commons-daemon._service.YYYY-MM-DD.log (YYYY-MM-DDはYellowfinを起動した日付です) | appserver > logs | 注意:このファイルは、YellowfinをWindows サービスとしてインストールした場合にのみ生成されます。 実際のWindows サービスの起動に関する情報を記録します。 |
Catalina.out | appserver > logs | 注意:このファイルは、YellowfinをMac (OS X)、またはLinux boxにインストールし、Yellowfinの起動に「Startup (background)」を使用している場合にのみ生成されます。(Windows boxに表示されるように)すべての情報がコンソールに出力されるため、「Startup (terminal)」オプションを使用してYellowfinを実行している場合、このログファイルは生成されません。 このログファイルには、Yellowfin アプリケーションプロセスに関連するすべての情報が含まれ、すべてのエラーやプロセスを記録します。 |
ログファイルとコンテナ環境への導入
コンテナ環境への導入の例で使用されているロギング方法はすべてそれぞれの環境のデフォルトのロギングドライバーを利用しており、DockerとKubernetesのデフォルトのロギングドライバーは、json-file ロギングドライバーです。Yellowfin コンテナのアップタイム中、ロギングドライバーは、コンテナのホスト上のJSONファイルにログを書き込みます。コンテナが削除されると、コンテナとともにログも削除されます。
(本番環境への導入のように) 更新後もYellowfin コンテナのログを閲覧および保持したい場合には、Docker/Kubernetesに統合された送信エージェントを使用して、一元化されたロギングプラットフォームにログを送信することを推奨します。
DockerおよびKubernetesでのロギングについて、より詳細な情報は、Docker ロギングベストプラクティスおよびKubernetes ロギングアーキテクチャーを参照してください。
ログファイルの変更
ログファイルの格納場所
Yellowfin/appserver/webapps/ROOT/WEB-INF から、ファイルサイズやファイル管理、パターン構文を含めて、どのような情報をログに記録するのか、ログファイルをどのように取り扱うのかを変更することができます。
次のいずれかのファイルをご確認ください。
Yellowfin リリースバージョン | ファイル名 | 詳細 |
Yellowfin 9.4以降 | log4j2.xml | ロギングがlog4j2にアップグレードされたことで、Yellowfin 9.4以降のバージョンでは異なる動きをするようになりました。 詳細は、こちらを参照してください。 |
Yellowfin 9.0 - 9.3 | log4j.properties | 以前のバージョンのYellowfinはlog4jロギングを使用していましたが、こちらは現在サポートを終了しています。 詳細は、こちらを参照してください。 |
ファイルを変更する前に、既存のファイルのバックアップを取得し、異なる場所に配置することを推奨します。
これらのファイルをメール送信する場合は、送信が許可されなかったり、空のファイルが送信される恐れがあるため、Yellowfin サービス(特に、Windows上のサービス)を停止しなくてはいけない場合があることに注意してください。
アペンダーとロガー
アペンダーとロガーは、連携してログイベントをログファイルに配信します。アペンダーは、ログの各行のパターンや、その宛先(ファイル、DB、クラウドなど)、関連する構成を定義します。ロガーは、何を記録するのか、またそのロギングのレベルをYellowfinに伝えます。ロガーは、Java class ファイルを、そのclassがログを記録するために使用するアペンダーにマップします。既に数多くのLog4j2 アペンダーやロガーが存在し、Log4j2 アペンダーのページで詳細に紹介されています。
RepositoryErrorAppenderの有効化
RepositoryErrorAppenderは、Yellowfin リポジトリデータベース内のイベントテーブルにエラーログメッセージを保存するカスタムLog4jアペンダーです。
INFOやDEBUGなど、深刻度の低いエラーメッセージは記録されませんが、ERRORやFATALのような深刻度の高いメッセージはデータベースに記録されます。
デフォルトでは、RepositoryErrorAppenderは使用されません。アペンダーを有効にしたい場合は、まずアペンダーを追加し、後述するログ構成ファイル内のロガーカテゴリーまたはルートカテゴリーに関連付ける必要があります。
Yellowfin 9.4以降
Yellowfin 9.4以降でアペンダーを有効にするには、以下の手順に従います。
- log4j2.xml ファイルを開きます (ロケーションについての詳細は、上記を参照してください)。
<Appenders>要素を探し、新しい行を追加します。
<RepositoryErrorAppender name="repos"/>
<Loggers>要素内で、アペンダーをロガーレベルまたはルートカテゴリーと関連付けます。
以下の例では、Rootに「repos」という行を追加しました。Rootはデフォルトロガーです。これは親を持たないため、log4j2 ロガー階層のトップに配置されています。これにより、Yellowfinのバックエンドのあらゆるところからリポジトリデータベースにすべてのエラーメッセージを記録します。<Root level="INFO"> <AppenderRef ref="applog"/> <AppenderRef ref="cons" /> <AppenderRef ref="repos" /> </Root>
必要に応じて、アペンダーをclassのグループ全体に関連付けることもできます。
以下の例では、com.hof.clusterのclass グループに「repos」という行を追加しています。これにより、Yellowfinのクラスタリングclassから、リポジトリデータベースにすべてのエラーイベントを記録します。この特定のアペンダー内のコードは、ERROR以上のみを記録するため、このカテゴリーに定義されたINFOレベルとは無関係です。<Logger name="com.hof.cluster" level="INFO"> <AppenderRef ref="repos" /> </Logger>
Yellowfin 9.0 - 9.3
Yellowfin 9.0 - 9.3でアペンダーを有効にするには、次の手順に従います。
log4j.properties ファイルに次の行を追加します (ロケーションについての詳細は、上記を参照してください)。
log4j.appender.repos=com.hof.adapter.RepositoryErrorAppender
アペンダーを、log4j.properties ファイルのロギングカテゴリーまたはルートカテゴリーに関連付けます。
以下の例では、ルートカテゴリーの次の行に「repos」を追加しています。これにより、Yellowfinのバックエンドのあらゆるところから、リポジトリデータベースにすべてのエラーメッセージを記録します。log4j.rootCategory=INFO, cons, applog, repos
必要に応じて、アペンダーをclassのグループ全体に関連付けることもできます。
以下の例では、com.hof.clusterのclass グループに「repos」という行を追加しています。これにより、Yellowfinのクラスタリングclassから、リポジトリデータベースにすべてのエラーイベントを記録します。この特定のアペンダー内のコードは、ERROR以上のみを記録するため、このカテゴリーに定義されたINFOレベルとは無関係です。log4j.category.com.hof.cluster=INFO, repos
Sourcelog アペンダーの編集
Log4jのSourcelog アペンダーは、各ソースデータベースに関するメッセージを、それぞれ個別のログファイルに記録します。
このアペンダーは、各ソースにRollingFileAppenderを作成し、RollingFileAppenderがサポートする大部分のプロパティをサポートします。
「ファイル」パラメーターは%トークンを持ち、これは自動的にYellowfin sourceIdに置き換えられます。
注意:このロガーは、Yellowfin DBConnectionPoolでの使用を意図しています。アペンダーは設定できますが、他のロガーにアペンダーを使用する価値はほとんどありません。
Sourcelog アペンダーは、デフォルトで有効化されています。
Yellowfin 9.4以降
Sourcelog アペンダーを変更する場合は、log4j2.xml ファイルの<Appenders>要素エリアを探します。
<SourceLog name="sourcelog" fileName="C:/logs/source.%s.log" filePattern="C:/logs/source.%s.log.%i" maxFileSize="1024KB" maxFiles="9"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %6p: %m%n" /> </SourceLog>
Yellowfin 9.0 - 9.3
Sourcelog アペンダーを変更する場合は、log4j.properties ファイル内で次の行を探します。
log4j.appender.sourcelog=com.hof.pool.SourceLogAppender log4j.appender.sourcelog.File=C:/logs/source.%s.log log4j.appender.sourcelog.MaxFileSize=1024KB log4j.appender.sourcelog.MaxBackupIndex=9 log4j.appender.sourcelog.layout=org.apache.log4j.PatternLayout log4j.appender.sourcelog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %6p: %m%n
項目ナビゲーション
現在のトピック - Yellowfinの導入
本ページはYellowfinのインストールおよび導入項目の一部であり、以下のトピックを含みます。