はじめに
プロセス実行中、各ステップのメッセージ(即ちログ)が生成されます。このログは収集され、ログファイル に保存されます。ログを収集して保存する全体的な操作は、ロギングと呼ばれます。
本ドキュメントでは、「ロギング・レベル」という概念とログを最大限に活かす方法について説明します。
ログ
akaBotのログは2つのグループに分類されます。
- デフォルトのログは、実行の開始/終了時、エラー/例外が発生して実行が停止した時など、特定のイベントに対して自動生成されるログです。
- ユーザー定義のログは、アクティビティのLog MessageまたはWriteLineを使用するときにRPAデベロッパーによって生成されるログです。
akaBot Studioでは、出力パネルでログを閲覧できます。
ロギングレベル
ロギングレベルは、ログメッセージがプロセスの実行に関連する重要性を示します。ユーザー側でLog Messageのアクティビティを使ってて定義できるロギングレベルは以下の通りです。
ロギングレベル | 意味 |
Fatal (致命的) | 致命的なエラーにより、ロボットが復旧できないか、復旧するはずがありません。何らかの重大な問題が発生したため、プロセスを停止しなければなりません。 |
Error(エラー) | エラーが発生し、ロボットは復旧して次の項目に進もうとします。詳細については、エラーコードテーブルを参照してください。 |
Warn(警告) | その他のログ情報から目立たせる必要がある、重要なデータ。 |
Info(情報) | ロボットの進捗に関する情報です。通常、ワークフローに出入りするとき、外部ソースからデータを読み取るときなどにこの情報が含まれます。 |
Trace(追跡) | 開発/デバッグ中には役立つが、本番環境では役に立たず、不要とされる情報です。 |
デフォルトとしては、ログのInfoレベルまでの閲覧が可能で、つまりWarnやErrorーなどのInfoレベル以上のログのみが出力パネルに閲覧できます。表示ログの詳細度を変更するには、以下を行います。
1.akaBot Agentを開き、設定ボタンをクリックします。
1.設定画面で、「Center」タブを選択し、ロギングレベルを変更します。
表示ログの詳細度は以下の通りです。
ロギングレベル | デフォルトログ | ユーザ定義ログ(Log Messageアキティビティによって定義されたログ) |
---|---|---|
Off | なし | なし |
Fatal | Fatalレベル以上でロギングされたすべてのメッセージ。 | Fatalレベル以上でロギングされたすべてのメッセージ。 |
Error | Errorlレベル以上でロギングされたすべてのメッセージ。 | Errorlレベル以上でロギングされたすべてのメッセージ。 |
Warn | Warnlレベル以上でロギングされたすべてのメッセージ。 | Warnlレベル以上でロギングされたすべてのメッセージ。 |
Info | Infolレベル以上でロギングされたすべてのメッセージ。 | Infolレベル以上でロギングされたすべてのメッセージ。 |
デバッグ | Debuglレベル以上でロギングされたすべてのメッセージ。 | 手動による設定は不可。 |
Verbose | Verboselレベル以上でロギングされたすべてのメッセージ。 | Verboselレベル以上でロギングされたすべてのメッセージ。 |
ログの出力先
ユーザーログ
これまでに調べたすべてのログはakaBot Studioに関連しており、プロセスの実行後に生成されるものですが、これらは、akaBot Studioで「開始」ボタンを押すことなどでユーザーが「作成」するログのため、ユーザーログとして定義されます。これらのログは「出力」パネルに表示されますが、出力後はテキストファイルとしてもアクセスできます。以下はログ出力先フォルダーの場所を見つける方法です。
- ファイルエクスプローラーを開き、%localappdata%\akaBot\Logs\に移動します。
- akaBot Agentを開き、設定ボタンをクリックします。設定画面で「その他」タブを選択し、「フォルダーを開く」ボタンを押して現在のユーザーログを表示します。
- akaBot Studioで、Ctrl+Lを押し、またはメニューパネルのログを開く ボタンをクリックします。
以下は出力先フォルダー内のファイルの説明です。
ファイル名/ファイルフォーマット | 意味 |
log4net.db log4net.db-shm log4net.db-wal | アプリケーションログを保存し、akaBotセンターにプッシュするために必要な使うファイルです。sqlite3フォーマットとして保存されます。 |
yyyy-mm-dd_BotService.log | akaBot Agent サービスのアプリケーションログを含むファイルです。設定された1つのユーザーボットにつき、サービスのインスタンスが1つあります。 |
yyyy-mm-dd_BotAgent.log | akaBot Agent UI のアプリケーションログを含むファイルです |
yyyy-mm-dd_BotExecutor.log | akaBot Agentエグゼキュータのアプリケーションログを含むファイルです |
yyyy-mm-dd_Studio.log | akaBot Studioのアプリケーションログを含むファイルです |
yyyy-mm-dd_hhmmss_Agent_<projectName>.log | akaBot Agentによって実行されたワークフローのログを含むファイルです |
yyyy-mm-dd_hhmmss_Agent_<projectName>.log | akaBot Agentによって実行されたワークフローのログを含むファイルです |
マシンログ
定義:【更新中】
マシンログは以下の方法で特定できます。
- ファイルエクスプローラーを開き、%programdata%\akaBot\Logs\に移動します。
- akaBot Agentを開き、設定ボタンをクリックします。設定画面で「その他」タブを選択し、「フォルダーを開く」ボタンを押してマシンログを表示します。
以下は出力先フォルダー内のファイルの説明です。
ファイル名/ファイルフォーマット | 意味 |
log4net.db log4net.db-shm log4net.db-wal | アプリケーションログを保存し、akaBotセンターにプッシュするために必要な使うファイルです。sqlite3フォーマットとして保存されます。 |
yyyy-mm-dd_BotService.log | akaBot Agent サービスのアプリケーションログを含むファイルです。 |
yyyy-mm-dd_msiexec.log | akaBotのインストールログを含むファイルです。 |
yyyy-mm-dd_AutoLogonChecker.log | Auto Logon Checkerモジュールのアプリケーションログを含むファイルです。 |
エラーコード
次のリストでは、システムエラーコードについて説明します。これらのエラーは、多くの関数が失敗した場合にGetLastError関数によって返されます。アプリケーションのエラーの説明を取得するには、FORMAT_MESSAGE_FROM_SYSTEMフラグを指定してFormatMessage関数を使用します。
エラー名 | エラーコード |
---|---|
ERROR | -1 |
成功 | 0 |
ERROR_APPDATA_PATH_NOT_EXIST | 100 |
ERROR_ILLEGAL_FILE | 101 |
ERROR_INVALID_ARGS | 102 |
ERROR_INVALID_ENV | 103 |
ERROR_LOAD_PLUGINS | 104 |
ERROR_READ_XAML_FAILED | 105 |
ERROR_WORKFLOW_ABORTED | 106 |
ERROR_WORKFLOW_CANCELLED | 107 |
ERROR_WORKFLOW_EXCEPTION | 108 |
ERROR_WORKFLOW_FAULTED | 109 |
ERROR_SETTING_NOT_FOUND | 110 |
ERROR_LICENSE_ERROR | 111 |
ERROR_INSTANCE_NOT_INITIALIZED | 200 |
ERROR_PROXY_SETTING_NOT_VALID | 201 |
ERROR_CONNECT_TO_SERVER_TIMEOUT | 202 |
ERROR_REQUEST_TO_SERVER_FAILED | 204 |
ERROR_AUTHENTICATION_FAILED | 205 |
ERROR_HTTP_ABORTED | 206 |
ERROR_HTTP_ERROR | 207 |
ERROR_HTTP_TIMEOUT | 208 |
ERROR_SERVER_RETURN_INVALID_TOKEN | 209 |
ERROR_UNKNOWN_EXCEPTION | 211 |
ERROR_UNHANDLED_EXCEPTION | 212 |
ERROR_WCF_REQUEST_FAILED | 213 |
ERROR_SERVER_CANNOT_BE_REACHED | 214 |
ERROR_NOT_AUTHENTICATED_TO_SERVER | 215 |
ERROR_USERNAME_CANNOT_NULL_EMPTY | 216 |
ERROR_PASSWORD_CANNOT_NULL_EMPTY | 217 |
ERROR_USERNAME_PASSWORD_CANNOT_NULL_EMPTY | 218 |
ERROR_SESSION_FOR_USERNAME_ALREADY_EXIST | 219 |
ERROR_SESSION_OF_USERNAME_NOT_EXIST | 220 |
ERROR_SETTING_FOR_USER_NOT_FOUND | 221 |
ERROR_TIMEOUT_MUST_GREATER_THAN_ZERO | 222 |
ERROR_LOAD_SETTING_FILE_FAILED | 223 |
ERROR_HTTP_FORBIDDEN | 224 |
ERROR_HTTP_UNAUTHORIZED | 225 |
ERROR_SET_LOG_LEVEL_FAILED | 226 |
ERROR_SET_BOT_CONFIG_FAILED | 227 |
ERROR_ALREADY_CONNECT_TO_SERVER | 228 |
ERROR_ARGUMENT_CANNOT_BE_NULL | 229 |
ERROR_AGENT_IS_BUSY | 230 |
ERROR_TASK_ALREADY_EXECUTED | 231 |
ERROR_TASK_COMMAND_INVALID | 232 |
ERROR_TASK_STATE_INVALID | 233 |
ERROR_SERVICE_NOT_INSTALLED | 234 |
ERROR_SERVICE_NOT_RUNNING | 235 |
ERROR_INVALID_LOG_OBJECT_FORMAT | 236 |
ERROR_INVALID_APPDATA_PATH | 237 |
ERROR_INVALID_PROGRAMDATA_PATH | 238 |
ERROR_PROGRAMDATA_PATH_NOT_EXIST | 239 |
ERROR_CENTER_SETTING_CANNOT_BE_NULL | 240 |
ERROR_PROXY_SETTING_CANNOT_BE_NULL | 241 |
ERROR_MACHINE_NAME_IS_EMPTY | 242 |
ERROR_INVALID_AGENT_KEY | 243 |
ERROR_INVALID_CENTER_URL | 244 |
ERROR_INVALID_PROXY_PORT | 245 |
ERROR_INVALID_USERNAME | 246 |
ERROR_INVALID_PASSWORD | 247 |
ERROR_INVALID_PROXY_URL | 248 |
ERROR_GET_SERVICE_PORT_FAILED | 249 |
ERROR_START_USER_SERVICE_FAILED | 250 |
ERROR_SYSTEM_SERVICE_ON_START_EXCEPTION | 251 |
ERROR_SHUTDOWN_USER_SERVICE_FAILED | 252 |
ERROR_SYSTEM_SERVICE_ON_STOP_EXCEPTION | 253 |
ERROR_SYSTEM_SERVICE_ON_CHANGE_EXCEPTION | 254 |
ERROR_REGISTER_USER_SERVICE_FAILED | 255 |
ERROR_UNREGISTER_USER_SERVICE_FAILED | 256 |
ERROR_REQUEST_UNLOCK_FAILED | 257 |
ERROR_NOTIFY_USER_SERVICE_CHANGED_FAILED | 258 |
ERROR_ENABLE_AUTOLOGON_MODULE_FAILED | 259 |
ERROR_DIRECTORY_NOT_EXIST | 260 |
ERROR_FILE_NOT_FOUND | 261 |