if err := Main(); err != nil { v := errors.AsAppError(err) if v == nil { v = errors.AsAppError(errors.SystemUnknown.Wrap(err, "Unknown error")) } fmt.Printf("%+v", v) // or ログ送信等 }
それ以外の箇所では単にラップするだけ。
【出力時一例】
github.com/eure/myapp/server/cmd/batch/cmd.runExec /Users/yamashitakento/repos/gohome/src/github.com/eure/myapp/server/cmd/batch/cmd/batch_sample.go:38 - github.com/eure/myapp/server/src/app/batch/facades.(*SampleFacade).SampleExec /Users/yamashitakento/repos/gohome/src/github.com/eure/myapp/server/src/app/batch/facades/sample_facade.go:99 - could not fetch : pager state &{Limit:100 Offset:0 Total:0 Max: Min: Orders:[{Column:id IsAsc:true}] pagingType:1}: : github.com/eure/myapp/server/src/app/batch/facades.(*SampleFacade).enqueueRecommendationUsers /Users/yamashitakento/repos/gohome/src/github.com/eure/myapp/server/src/app/batch/facades/sample_facade.go:118 - [crit] [system_default] example error!: github.com/eure/myapp/server/src/domain/user.(*service).FindUsers