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 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。