7.3. ロギングの設定
デフォルトでは、Debezium コネクターはすべての INFO
、WARN
、および ERROR
メッセージをコンソールに書き込みます。ただし、この設定は以下の方法で変更することができます。
本セクションでは、Log4j で Debezium ロギングを設定するのに使用できるいくつかの方法のみを説明します。Log4j の使用に関する詳細は、チュートリアルを検索してアペンダーを使用して特定の宛先にログメッセージを送信します。
7.3.1. ログレベルの変更
デフォルトの Debezium ロギングレベルは、コネクターの正常性を示すのに十分な情報を提供します。ただし、コネクターが正常でない場合は、ロギングレベルを変更して問題のトラブルシューティングを行うことができます。
通常、Debezium コネクターはログメッセージを生成する Java クラスの完全修飾名に一致する名前を持つログメッセージをロガーに送信します。Debezium は、パッケージを使用して同様の関数または関連関数でコードを整理します。つまり、特定のクラスまたは特定のパッケージ下にあるすべてのクラスに対してログメッセージをすべて制御できます。
手順
-
log4j.properties
ファイルを開きます。 コネクターのロガーを設定します。
この例では、MySQL コネクターとコネクターによって使用されるデータベース履歴実装のロガーを設定し、ログ
DEBUG
レベルのメッセージを設定します。log4j.properties
... log4j.logger.io.debezium.connector.mysql=DEBUG, stdout 1 log4j.logger.io.debezium.relational.history=DEBUG, stdout 2 log4j.additivity.io.debezium.connector.mysql=false 3 log4j.additivity.io.debezium.relational.history=false 4 ...
- 1
- 、
DEBUG
、、INFO
WARN
およびERROR
メッセージをstdout
アペンダーio.debezium.connector.mysql
に送信するようにという名前のロガーを設定します。 - 2
- 、
DEBUG
、、INFO
WARN
およびERROR
メッセージをstdout
アペンダーio.debezium.relational.history
に送信するようにという名前のロガーを設定します。 - 3 4
- 追加をオフにします。これは 、 ログメッセージが親ロガーの追加者に送信されないことを意味します(これにより、複数のアペンダーを使用する際に重複ログメッセージが表示されるのを防ぐことができます)。
必要に応じて、コネクター内のクラスの特定のサブセットのロギングレベルを変更します。
コネクター全体のロギングレベルを増やすと、ログの詳細レベルが高まるため、何が発生しているかを理解することが困難になる可能性があります。このような場合、トラブルシューティングを行う問題に関連するクラスのサブセットのロギングレベルを変更できます。
-
コネクターのロギングレベルをまたはのいずれ
DEBUG
かに設定しTRACE
ます。 コネクターのログメッセージを確認します。
トラブルシューティングを行う問題に関連するログメッセージを見つけます。各ログメッセージの最後には、メッセージを生成した Java クラスの名前が表示されます。
-
コネクターのログレベルをに設定し
INFO
ます。 特定した各 Java クラスのロガーを設定します。
たとえば、binlog の処理時に MySQL コネクターが一部のイベントをスキップする理由が不明なシナリオについて考えてみましょう。コネクター全体でオン
DEBUG
またはTRACE
ロギングを行うのではなく、コネクターのロギングレベルを維持INFO
し、binlog を読み取るクラスTRACE
のみを設定DEBUG
または設定できます。log4j.properties
... log4j.logger.io.debezium.connector.mysql=INFO, stdout log4j.logger.io.debezium.connector.mysql.BinlogReader=DEBUG, stdout log4j.logger.io.debezium.relational.history=INFO, stdout log4j.additivity.io.debezium.connector.mysql=false log4j.additivity.io.debezium.relational.history=false log4j.additivity.io.debezium.connector.mysql.BinlogReader=false ...
-
コネクターのロギングレベルをまたはのいずれ