Logf Package v0.2.1 Released
レベル付き logger パッケージ spiegel-im-spiegel/logf v0.2.1 をリリースした。
標準の log パッケージをラップする形で実装している。 以下のように lestrrat-go/file-rotatelogs のようなローテーション機能付きの Writer と組み合わせて使うといい感じになる。
package main
import (
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"github.com/spiegel-im-spiegel/logf"
)
func main() {
rl, err := rotatelogs.New("./log.%Y%m%d%H%M.txt")
if err != nil {
logf.Fatal(err)
return
}
logger := logf.New(
logf.WithFlags(logf.LstdFlags|logf.Lshortfile),
logf.WithPrefix("[Sample] "),
logf.WithWriter(rl),
logf.WithMinLevel(logf.INFO),
)
logger.Print("Information")
//Output:
//[Sample] 2009/11/10 23:00:00 sample.go:20: [INFO] Information
}
本当は JSON 形式の構造化ログに挑戦しようと思ったのだが,既に出来のいいパッケージが存在したので止めた。
なので,これ以上 spiegel-im-spiegel/logf を弄ることはないと思う。
ブックマーク
参考図書
- プログラミング言語Go
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。