ログ
connector のログを取得しておくことで、エラーメッセージや想定外の振る舞いを診断する際に役立ちます。
基本的なログの記録
2つの接続プロパティを設定するだけで、connector のログを取得できます。
- Logfile:ログファイルの名前と場所を指定するファイルパス。
- Verbosity:ログの詳細レベルを決定する数値(1-5)。5段階数値の内容は、「接続プロパティ」セクションのページを確認してください。
- MaxLogFileSize:サイズリミットを超えると、日付と時刻が末尾に追加された新しいログが同じフォルダ内に作成されます。リミットのデフォルトは100 MB です。100 kB より小さい値を設定した場合、100 kB がリミットとなります。
- MaxLogFileCount:ログファイルの最大ファイル数を指定する文字列。サイズリミットを超えると、日付と時刻が末尾に追加された新しいログが同じフォルダ内に作成され、最も古いログファイルが削除されます。サポートされる最低値は2です。0や負の値は、数に制限がないことを示します。
このプロパティを設定すると、認証が実行されたときやクエリが実行されたときなど、さまざまなタスクを実行する際に、connector がログファイルを生成します。指定したファイルが存在しない場合は作成されます。
ログのVerbosity レベル
Verbosity レベルは、connector がLogfile にどの程度の詳細さで記載するかを決定します。1 から5 までのVerbosity レベルがサポートされています。次のリストで、これらについて説明します。
1 | Verbosity を1に設定すると、クエリ、返された行数、実行開始とかかった時間、エラーが記録されます。 |
2 | Verbosity を2に設定すると、Verbosity 1に含まれるすべて、キャッシュクエリ、およびリクエストに関する追加の情報が記録されます。 |
3 | Verbosity を3に設定すると、2 に加えてHTTP ヘッダーおよびリクエストとレスポンスの本文が記録されます。 |
4 | Verbosity を4に設定すると、3 に加えてデータソースとのトランスポートレベルの通信が記録されます。これには、SSL ネゴシエーションが含まれます。 |
5 | Verbosity を5に設定すると、データソースとのやり取りおよび問題のトラブルシューティングに役立つ追加情報も記録されます。これには、インターフェースコマンドが含まれます。 |
通常の実行では、Verbosity を2以上に設定しないでください。高い詳細レベルでは、大量のデータが記録されて、実行に遅れが生じる恐れがあります。
特定の情報に関するカテゴリを表示または非表示にしてログ内容を調整するには、LogModules を参照してください。
センシティブデータ
Verbosity レベル3以上では、組織外で共有したくない情報をキャプチャする場合があります。以下に、各レベルで懸念される情報をリストします。- Verbosity 3:connector から返されるすべてのデータを含むリクエストとレスポンスのボディ
- Verbosity 4:SSL 証明書
- Verbosity 5:ヒューマンリーダブルでないバイナリ転送データなど、Verbosity 3には含まれていない追加の転送データ
データセキュリティのベストプラクティス
パスワードなどのセンシティブデータは、接続文字列やログ内のすべてのリクエストでマスクされますが、組織外で共有する前に機密情報がないかログを確認することをお勧めします。
Java のログ出力
Logfile でJava のログ出力が有効になっている場合、Verbosity は代わりに次のログレベルにマップします。
- 0:Level.WARNING
- 1:Level.INFO
- 2:Level.CONFIG
- 3:Level.FINE
- 4:Level.FINER
- 5:Level.FINEST
高度なログの記録
ログファイルに記録される情報を、正確に絞り込みたい場合があるかもしれません。これは、LogModules プロパティを使用することで可能です。
このプロパティを使えば、セミコロン区切りでリスト化されたログモジュールを使用してログ内容をフィルタできます。
すべてのモジュール名は4文字です。注意点として、3文字のモジュール名は、必ず最後に空白文字を含みます。利用可能なモジュールは次のとおりです。
- EXEC:クエリの実行。元のSQL クエリ、パースされたSQL クエリ、正規化されたSQL クエリ用の実行メッセージを含みます。クエリとページングの成功または失敗のメッセージもここに表示されます。
- INFO:一般的な情報。接続文字列、ドライバーのバージョン(ビルド番号)、初期接続メッセージを含みます。
- HTTP:HTTP プロトコルメッセージ。HTTP リクエストとレスポンス(POST メッセージを含む)、Kerberos に関するメッセージを含みます。
- SSL :SSL 証明書メッセージ。
- OAUT:OAuth に関する失敗または成功のメッセージ。
- SQL :SQL トランザクション、SQL 一括転送のメッセージ、SQL 結果セットのメッセージを含みます。
- META:メタデータのキャッシュとスキーマのメッセージ。
- TCP :TCP トランスポート層メッセージの送受信Raw バイト。
LogModules=INFO;EXEC;SSL ;SQL ;META;
これらのモジュールはVerbosity を考慮して、取得中の情報の詳細レベルを変更します。