LoginSignup
0
0

More than 3 years have passed since last update.

経過時間のloggingを簡易にするhelperメソッド作ってみた

Posted at

このページについて

タイトル通りです(2019-08)
いちいち Before のように書くのが面倒だったので簡単にしてみました

Before

func Do() {
    s := time.Now()
    //
    // doAnyFunc()
    //
    e := time.Now()
    log.Print(e.Sub(s))
}

After

msecでロギングしたい例

func Do() {
    defer helper.MillSecTimeTrack(time.Now(), timeTrack())
    //
    // doAnyFunc()
    //
}

func timeTrack() func(v float64) {
    return func(v float64) {
        log.Print(v)
    }
}

func MillSecTimeTrack(start time.Time, loggingFunc func(e float64)) {
    elapsed := time.Since(start).Seconds() * 1000
    loggingFunc(elapsed)
}

関数でラップしているのは、経過時間以外にも情報を好きに残せるようにするためです
こんな感じ

func Do() {
    query := "select * from qiita"
    defer helper.MillSecTimeTrack(time.Now(), timeTrack(query))
    //
    // doAnyFunc()
    //
}

func timeTrack(query string) func(v float64) {
    return func(v float64) {
        log.Print(query, v)
    }
}

func MillSecTimeTrack(start time.Time, loggingFunc func(e float64)) {
    elapsed := time.Since(start).Seconds() * 1000
    loggingFunc(elapsed)
}

参考

0
0
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
0
0