トラブルシューティング - ロギング
診断ロギングの目的は、アプリケーションの実行時に利用可能な情報を増やすことです。ログに記録されたエラーと警告は、エンドユーザーにすぐには明らかにならない可能性があるシステム内の障害を特定するのに役立ちます。より詳細なロギングを一時的に有効にすると、問題のトラブルシューティング時にアプリケーションがどのように動作しているかをわかりやすく図で示すことができます。
Blue PrismはNLogと呼ばれる、実績があり信頼できるライブラリを利用して、ログ情報を出力し記録します。ユーザーは、グローバルまたはアプリケーションの特定の領域に記録される情報量を微調整できます。Windowsイベントログやテキストファイルなどのさまざまなログ出力先から選択することもできます。
ロギングレベル
ログエントリはレベル別に分類されます。情報レベル以上の入力は通常、標準として記録されます。[デバッグ]や[トレース]など、より詳細な下位レベルでは、さらに詳しい情報が提供されますが、有効にする必要があります。
NLogは、最下位から最上位までの次のレベルを定義します。
- トレース – 非常に詳細なログ。プロトコルペイロードなどの大量の情報が含まれることがあります。このログレベルは、通常は開発中にのみ有効になります。
- デバッグ – トレースよりも詳細度の低いデバッグ情報は通常、パフォーマンスに影響する可能性があるため、本番環境では有効になりません。
- 情報 – 情報メッセージ。通常は本番環境で有効になっています。
- 警告 – 警告メッセージ。通常は、復旧可能な重要でない問題、または一時的な障害に関するものです。
- エラー – エラーメッセージ – ほとんどの場合、これらは例外です。
- 致命的 – 非常に重大なエラー。
標準ロギング構成
標準のNLog XML構成ファイルを使用してNLogを構成できます。次の2つの個別の構成ファイルが使用されます。
- Automate.NLog.config – Automate(インタラクティブクライアントおよびリソースPC)、AutomateC、AppManが使用
- Server.NLog.config - サーバーが使用(BPServer.exeとして実行され、Windowsサービスとして実行)
Blue Prismをインストールすると、デフォルトのログ構成ファイルがBlue Prism固有のフォルダーにインストールされます。デフォルトのインストールでは次のとおりです。C:\ProgramData\Blue Prism Limited\Blue Prism。
ログ構成ファイルには、次の2つの主なログ送信先があります。
デフォルトの構成では、「情報」レベル以上(警告、エラー、致命的なエラーを含む)のログ入力がWindowsイベントログに送信されます。テキストファイルのロギングも構成されますが、デフォルトでは致命的なエラー(アプリケーションのクラッシュの原因となった未処理の例外など)にのみ使用されます。これにより、Windowsイベントログへのエラーの記録に失敗した場合でも、クラッシュに関する情報が利用できるようになります。
Blue Prismを普通に使っている間は、自分でログ構成ファイルに変更を加える必要はありません。製品の問題を調査する場合、カスタマーサービスは通常、代わりとなるログ構成ファイルを提供します。
ロギング構成に変更を加えるとアプリケーションの性能に影響を及ぼす可能性があるため、本番環境内を修正する場合は特に注意する必要があります。
技術に関する情報をさらにご希望の場合は、次のリンクから役立つ詳細情報にアクセスしてください。
Windowsイベントログ
「情報」レベル以上のログ入力は、Windowsイベントログに送信されます。
イベントログ設定は<target name="app-eventlog" ...の要素内で定義されます。これは構成終了時に次の要素で有効になります。
<logger name="*" minlevel="Info" writeTo="app-eventlog" />
メインログはBlue Prismと呼ばれます。イベントログのソースは、情報がリソースPC、サーバーまたはインタラクティブクライアントによりログに記録されるかどうかによって異なります。
テキストログファイル
ログファイルはBlue Prism固有のディレクトリに書き込まれます。デフォルトのインストールでは、次のようになります。C:\ProgramData\Blue Prism Limited\Blue Prism\Logs。この場所はBlue Prism APIログファイルにも適用されます。Control Roomのログファイルは、Blue Prism Hubのログファイルのデフォルトの場所であるC:\Program Files (x86)\Blue Prism\に書き込まれます。個別のログファイルは、実行中のアプリケーション(インタラクティブクライアント、サーバー、またはリソースPC)に基づいて生成され、各リソースPCに一意のファイル名が生成されます。
テキストファイルのロギングは、デフォルトで致命的なエラー(アプリケーションのクラッシュの原因となる未処理の例外など)に限定されています。これにより、Windowsイベントログへのエラーの記録に失敗した場合でも、クラッシュに関する情報が利用できるようになります。
詳細なテキストファイルロギングは、より詳細なデバッグ情報が必要な場合にのみ有効にする必要があります。Blue Prismカスタマーサポートが、必要な構成変更についてアドバイスします。
テキストファイルのロギングのパラメーターは、<target name="app-logfile" ...要素内に定義され、構成ファイルの末尾にある次の要素により制御されます。
<logger name="*" minlevel="Fatal" writeTo="app-logfile" />
標準構成には、ログアーカイブと回転機構が含まれています。ファイルが10MBに達し、アーカイブするファイルを最大50個保持する場合にファイルがアーカイブされます。
以下はログファイルのラインの例です。
2019-01-14 13:07:59.2395 DEBUG BluePrism.AutomateAppCore.clsResourceConnection BP0188:8182 - アップデートの開始。現在の状態:オフライン
標準構成で定義されているこのテキストの形式には、以下の要素が含まれています。
- 日時(UTC)
- ログレベル(DEBUG、INFO、WARN、ERROR、FATAL)
- ロガー名 – これは通常、ログ入力の起点となるクラスと名前空間を識別します。
- ログメッセージ
- エラー情報(例外情報が記録されている場合にのみ利用可能) – 詳細はすべて下の別の行に記録されます
ログを有効化
アプリケーション全体のテキストファイルのロギングは、構成を編集して選択レベルを指定することで有効化できます。
<logger name="*" minlevel="Debug" writeTo="app-logfile" />
テキストファイルのロギングの微調整
また、次のような補助的なロガー要素を追加することで、アプリケーションの少なくとも1つの特定領域に対しデバッグレベルのテキストファイルロギングを有効にすることもできます。
<logger name="*" minlevel="Info" writeTo="app-logfile" />
<logger name="BluePrism.AutomateAppCore.*" minlevel="Debug" writeTo="app-logfile" />
<logger name="BluePrism.AutomateUI.*" minlevel="Debug" writeTo="app-logfile" />
ワイルドカードは、名前空間レベル以下の複数のロガーを指定するために使用できます。
空のwriteTo属性を使用して、アプリケーションの特定の領域でテキストファイルのロギングを無効にすることもできます。たとえば、次のようになります。
<logger name="BluePrism.AutomateAppCore.*" minlevel="Debug" maxLevel="Fatal" writeTo="" final="true" />
<logger name="BluePrism.AutomateUI.*" minlevel="Debug" maxLevel="Fatal" writeTo="" final="true" />
<logger name="*" minlevel="Debug" writeTo="app-logfile" />
構成のトラブルシューティング
NLogは、ロギング中にエラーが発生したためにアプリケーションを停止するのではなく、警告せずに失敗するように設計されています。これにより、ロギング構成が機能しない理由がわかりにくくなることがあります。
潜在的な問題としては、次のようなものがあります。
- Windowsイベントログのログおよびソースを作成するために、昇格された許可が必要となる
- テキストファイルのロギングに、ターゲットディレクトリでの許可が必要となる
標準XML構成では、いくつかの有用な診断オプションを使用できます。
- 標準構成でthrowExceptions="false"属性を検索し、値を「true」に修正して、構成でエラーが示される可能性のあるロギング例外を有効にします。
- また、NLogの内部ログを有効にすることもできます。これは、標準構成ではデフォルトでオフになっていますが、次の属性を編集することで有効にできます:internalLogLevel="Off" internalLogFile="C:\temp\nlog-internal.log"。