Goのloggerで便利なものがないかなと探してみますと、(自分には)なかなかしっくりくるのがないなと思ってました。
もともとpythongでloggingを使ってたので、InfoやWarningがあればなと思って作ってみました。
Go歴3か月なのでいたらない点はご勘弁を。
よさげだと思うところ
- レベル別にした。
- ユーザー、ホスト名も出力した。
- 呼び出しファイル、関数、行数も出力した。
こんな感じ
package main
import (
"github.com/suganoo/gologger"
)
func hogeFunc() {
gologger.Debug("this is debug hogeFunc")
gologger.Info("call hogeFunc")
}
func main() {
gologger.SetLogfile("./testlog.log")
defer gologger.CloseFile()
msg := "hogehoge"
gologger.Debug("this is debug") // default debug is muted
gologger.Info("this is info")
gologger.Info("msg : " + msg)
gologger.Warning("this is warning")
gologger.Error("this is Error")
gologger.UnmuteDebug()
hogeFunc()
gologger.Debug("this is debug xxx")
gologger.MuteDebug()
gologger.Debug("this is debug yyy") // this debug message is muted
}
2018-02-21T10:07:44.277+09:00 INFO hoge.sever 3892 fuga-user 1.0.0 this is info main [gologgerSample.go:18]
2018-02-21T10:07:44.277+09:00 INFO hoge.sever 3892 fuga-user 1.0.0 msg : hogehoge main [gologgerSample.go:19]
2018-02-21T10:07:44.277+09:00 WARNING hoge.sever 3892 fuga-user 1.0.0 this is warning main [gologgerSample.go:20]
2018-02-21T10:07:44.277+09:00 ERROR hoge.sever 3892 fuga-user 1.0.0 this is Error main [gologgerSample.go:21]
2018-02-21T10:07:44.277+09:00 DEBUG hoge.sever 3892 fuga-user 1.0.0 this is debug hogeFunc hogeFunc [gologgerSample.go:8]
2018-02-21T10:07:44.277+09:00 INFO hoge.sever 3892 fuga-user 1.0.0 call hogeFunc hogeFunc [gologgerSample.go:9]
2018-02-21T10:07:44.277+09:00 DEBUG hoge.sever 3892 fuga-user 1.0.0 this is debug xxx main [gologgerSample.go:26]
カスタマイズ
おそらく多数の方が出力を調整してみたいと感じるのではと思います。
folkしてwrite関数の中身をいじってみてください。もしくはこれを参考に独自loggerを作ってみてください。