BLOGコードもサーバも、雲の上2015-01-30Go言語のログ出力は標準logよりLogrusGoこんにちは。昨年はGo言語が大盛り上がりでした。HDEでも新規サービスをGo言語で書いています。私は重箱の隅つつきのようなことを書こうと思います。実はLogrus(https://github.com/Sirupsen/logrus)が、かなり便利だったという話です。ログをPrintfなどで自分で整形しなければいけないのも問題です。v)}log.Println(msg)書捨てコードならともかく、コード量が多くなると一々書くのはおっくうです。「そもそもどんなフォーマットで出力するのか?」という問題もあります。バグ発覚時に「ここでログを出しておけば・・・」と後悔するでしょう。これらの問題はlog以外のサードパーティのログライブラリにも同様に存在します。LogrusはパラメータをWithFieldsで渡すだけ。フォーマットは後から簡単に変更できます。いった遅延評価が可能です。メソッドを一つ実装するだけで簡単に新しい出力フォーマットを自作できます。error)}というわけで、LTSV用フォーマッタを作ってみました。シェルスクリプトでも扱えるほどシンプルな上、後からフィールドを追加するのも簡単。fluentd等のツールも対応しており、JSONを上回る「とりあえずこれでいいか」力を持っています。そのためHDEの一部製品でもLTSVを使っています。あとがきHDEでは勉強会スペースの貸し出しをしております。アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。