LoginSignup
2
3

More than 5 years have passed since last update.

(旧版)Goでloggerを作ってみた

Last updated at Posted at 2018-02-21

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を作ってみてください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3