Go 1.13 のリリースに合わせて spiegel-im-spiegel/errs パッケージを公開したのだが,このパッケージで構成した構造化エラーをログ出力することを考える。 まぁ標準の log パッケージでエラーメッセージを出力してもいいのだが,せっかく JSON 形式で出力できるようにしたんだから,ログ出力も JSON 形式にしたいよね。 ちうわけで,今回はこれを使います。 てってれー rs/zerolog: Zero Allocation JSON Logger まずは準備として以下の関数を考える。 import ( "os" "github.com/spiegel-im-spiegel/errs" ) func checkFileOpen(path string) error { file, err := os.Open(path) if err != nil { return