9.5 アプリケーションでクエリーをロギングする

クエリーのロギングは、開発・検証中には想定のクエリーが実行されているかどうかを確認し、調査やデバッグのためには必須の要素です。一方で本番環境においては、すべてのクエリーを出力せず、エラーが発生したクエリーのみをログに出力します。ロギングするクエリーの出し分けが実際のシステム開発では必要になることが大半です。このような、環境によってログを出し分ける方法は「12.4  構造化ログを出力する 」を参照してください。 ここではクエリーのログを出力する方法について説明します。

クエリーの実行状況を確認するには、Goのアプリケーション側でクエリーをロギングする方法と、データベース側でクエリーをロギングする方法があります。データベース側でクエリーを確認するためには設定が必要です。設定内容はMySQLやPostgreSQL、Oracle Databaseなど各データベースによって異なるので、詳細は各データベースのドキュメントを確認してください。

アプリケーションでクエリーをロギングする方法は大きく3種類の方法に分かれます。データベースのドライバー側でロギングする方法、アプリケーションでロギングできるようなラッパーを構える方法、サードパーティーライブラリのAPIを用いてライブラリ側でロギングをする方法です。アプリケーションで便利なORMライブラリを用いている場合は、ライブラリのAPIを使う方法が良いでしょう。標準ライブラリの database/sql パッケージにはクエリーをロギングするAPIがないため、ドライバー側でロギングをラップできるライブラリを用いるか、アプリケーションでロギングすることになるでしょう。

9.5.1 ドライバーを使ってクエリーをロギング ...