2015-02-18

golangのstack traceをファイルに保存

予期せぬエラーでプログラムが落ちたときのために
golangのstack traceをファイルに保存しておきたいが、
ググってもkernel32を使う方法が出てくることが多い。

下記方法で一応解決した。
import (
        "os"
        "runtime/debug"
)

defer func() {
        if r := recover(); r != nil {
                w, err := os.Create("debug.txt")
                if err != nil {
                        os.Exit(1)
                }
                os.Stderr = w
                debug.PrintStack()
        }
}()
// panicの起こる処理

No comments:

Post a Comment