# ログおよび例外の処理

利用対象...

* Cloud API Services Platform
* Cloud Big Data
* Cloud Big Data Platform
* Cloud Data Fabric
* Cloud Data Integration
* Cloud Data Management Platform
* Data Fabric

## 始める前に

* プロジェクト設定でLog4jオプションが有効になっていること。詳細は、[Log4jを有効化して設定](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2024-04-and-earlier/studio-configure-log4j "Talend Studioには、実行時にロギングできるApacheロギングユーティリティのLog4jが含まれています。コンポーネント内でLog4jロガーを有効または無効にすることや、log4jの設定をプロジェクトに関してグローバルにカスタマイズすることが可能です。")をご覧ください。

## このタスクについて

アーティファクトを作成する場合、特定のコンポーネントを使用して例外データを収集し、Talend StudioコンソールまたはWebアプリケーションに転送できます。

ジョブの作成時は、以下を使用します。

* tJobFailure例外を返し、アーティファクトまたはタスクの実行を停止する場合
* tLogCatcher 例外データを収集してTalend StudioまたはWebアプリケーションに転送する場合
* tJobLog Talend Studioでジョブを実行したり、Webアプリケーションでタスクを実行したりする時に、ログ情報を定義する場合

以下の例は、ジョブでデータの例外を収集する方法を示しています。

## 手順

1. Webサービスを呼び出すジョブを作成します。
   ### 例

   ![Webサービスを呼び出すジョブのスクリーンショット。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/cloud-action-handle_exception2.png)
2. tJobFailureコンポーネントの[Basic settings] (基本設定)ビューを開きます。
3. [Error Type] (エラータイプ)フィールドにエラータイプとして Execution failed (実行失敗)と入力します。

   必要に応じてエラータイプを定義できます。このフィールドで定義した値はWebアプリケーションでタスクを実行する時に実行の詳細ページに表示されます。
4. メッセージのJava式を[Error Message] (エラーメッセージ)フィールドに入力します。
   ### 例

   "Error during call service: " + row6.faultString + " details:" + (row6.faultDetail != null ? row6.faultDetail.toString() : null)

   これは、SOAPサービスからの応答で障害が発生した場合に例外がスローされることを意味します。必要に応じてエラーメッセージを定義できます。
5. tLogCatcher、2つのtJobLog、tJobFailureを使ってサブジョブを作成します。

   デモプロジェクトをインポートした場合は、[Repository] (リポジトリー)ツリービューの[Joblets] (ジョブレット)ノードに用意されている例外処理サブジョブをドロップできます。デモプロジェクトの詳細は、[デモプロジェクトをインポート](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/importing-demo-project)をご覧ください。
6. tLogCatcherコンポーネントの基本設定で、[Catch Java Exception] (Java例外をキャッチ)および[Catch tJobFailure] (tJobFailureをキャッチ)オプションを選択します。

   tLogCatcherコンポーネントは例外データを収集してTalend StudioまたはWebアプリケーションに転送します。
7. 最初のtJobLogコンポーネントの基本設定で、[Developer] (開発者)オプションを選択し、[Log message] (ログメッセージ)フィールドに以下のようにログメッセージを定義します:

   "\n | Action: " + row1.job + "\n | Component: " + row1.origin + "\n | Error type: " + row1.type + "\n | Error code: " + row1.code + "\n | Error message: " + row1.message

   これにより、エラーメッセージがTalend Studioに記録されます。
8. 2番目のtJobLogコンポーネントの基本設定で、[User] (ユーザー)オプションを選択し、[Log message] (ログメッセージ)フィールドに以下のようにログメッセージを定義します:

   row2.message

   これによりエラーメッセージがWebアプリケーションに書き込まれます。
9. tJobFailureコンポーネントの基本設定で、[Execution failed] (実行失敗)をエラータイプとして設定し、[Error Message] (エラーメッセージ)フィールドのメッセージのJava数式を以下の例のように設定します:

   row3.job + ":" + row3.origin +": " + row3.message