Talend Studioには、実行時にロギングできるApacheロギングユーティリティのLog4jが含まれています。コンポーネント内でLog4jロガーを有効または無効にすることや、log4jの設定をプロジェクトに関してグローバルにカスタマイズすることが可能です。
ⓘ対象製品:
Big Data
Big Data Platform
Cloud Big Data
Cloud Big Data Platform
Cloud Data Fabric
Data Fabric
Real-Time Big Data Platform
警告: Log4j2のセキュリティ問題(CVE-2021-44228)に対処できるよう、Dataproc 2.x以降、Azure Synapse、HD Insight 4.0の各ディストリビューションでSpark BatchジョブとSpark Streaming ジョブを実行する場合は、コンポーネント内のLog4jロガーを必ず無効にしてください。
ジョブが失敗しないよう、の[Log4j]ビューで[Activate log4j in components] (コンポーネントでlog4jを有効化)チェックボックスをオフにするか、Sparkジョブの[Advanced settings] (詳細設定)にあるlog4jLevelチェックボックスをオフにしてください。
手順
- Talend Studioのメインウィンドウのツールバーで
をクリックするか、メニューバーでとクリックして[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
-
ダイアログボックスのツリービューで[Log4j]ノードをクリックし、[Log4j]ビューを開きます。
-
log4j機能を有効にするには、[Activate log4j in components] (コンポーネントでlog4jを有効化)チェックボックスをオンにします。
デフォルトでは、プロジェクトが作成された時にLog4j機能が有効化され、Log4j 2が有効になります。
Log4j 1しかサポートしていないTalend 7.2以前のバージョンからプロジェクトがインポートされた場合は、[Log4j version] (Log4jバージョン)ドロップダウンリストで、非推奨であるLog4jがデフォルトで選択されています。Log4jバージョンを変更すると、プロジェクトのPOMファイルがすべて同期化されます。
ⓘ対象製品:
Cloud API Services Platform
Cloud Big Data
Cloud Big Data Platform
Cloud Data Fabric
Cloud Data Integration
Cloud Data Management Platform
Data Fabric
注: ジョブをTalend Cloudにデプロイする必要がある場合、Log4j 2の使用で Talend Remote Engine 2.8.1 以降が必要です。
-
必要であれば、[Log4j template] (Log4jテンプレート)エリアでXML命令を変更してLog4jのグローバル設定を変更します。
たとえば、デバッグや高位のメッセージをすべて出力するようlog4jのルートロガーを設定するには、[Loggers] (ロガー)セクションに移動し、rootノードのlevel属性の値をdebugに設定します。
Talendが提供する8.0 R2022-09以降のTalend Studioマンスリーアップデートをインストール済みであれば、Log4j 2 MDC (Mapped Diagnostic Context) にはキーと値のペアが入力されます。これらの新しいログ属性によって、複数のスレッドからのログメッセージがすべて単一のファイルに書き込まれる場合に、ログデータが生成されたスレッドを簡単に特定できるようになります。Log4j 2 MDCの詳細は、Log4j 2 API - Thread Contextをご覧ください。
ログの書き込み時に追加ログ属性をすべて含める場合は、PatternLayout
セクションに%X
を追加します。
<PatternLayout pattern="[%-5level] %d{HH:mm:ss} %logger{36}- %X %msg%n" />
ログの書き込み時に特定のログ属性を含める場合は、PatternLayout
セクションに%X{key} %X{key2} ... %X{keyN}
を追加します。{keyN}
は、対応するログ属性のキーです。また、属性を簡単に識別できるよう、コンマなどの文字で属性を区切ることもできます。次の例では、ログの書き込み時に_pid属性と_startTimestampの属性が含まれます。
<PatternLayout pattern="[%-5level] %d{HH:mm:ss} %logger{36}- %X{_pid}, %X{_startTimestamp} %msg%n" />