April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
AWSであればCloudWatch Logs、Google Cloundの場合はCloud Loggingというログ管理のサービスがあります。これらのサービスではログ表示のUIを提供しており、出力されたログをフィルタリングして検索したりできます。このようなサービスを利用するにあたって、利用しやすいログ形式が 構造化ロギング です。構造化ロギングはキーと値のペアを持つことができ、分析がしやすいログ形式です。どちらのサービスもJSON形式に対応しています。
構造化ログは標準出力に出力された内容をエージェントが収集し、これらのサービスに送信しています。このような場面で使えるGoライブラリとして有名なのが、rs/zerologと go.uber.org/zapです。本書では前者を取り上げます。「ライブラリがなくてもできる」と紹介しましたが、ログを整形して出力する、同一の設定で何度も出力する、といった場合には何らかのライブラリを使った方が便利です。 zerologは速度を売りにした構造化ログを出力するためのライブラリで、デフォルトでは標準出力などに出力します。このJSON作成時のパフォーマンスが高いライブラリです。標準のlogパッケージはお手軽ですが、構造化ログを出力するには手間がかかります。
zerologを利用するには次のようにインポートします。rs/zerolog/logは簡単に扱えるようにラップされたAPIで、rs/zerologの方が細かい設定ができる詳細なAPIになっています。
import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log" ...Read now
Unlock full access