回答編集履歴

1

追記

2021/05/13 00:13

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -85,3 +85,67 @@
85
85
  }
86
86
 
87
87
  ```
88
+
89
+
90
+
91
+ ## 追記
92
+
93
+
94
+
95
+ 質問にある以下の表示は問題解決に相応しくありません。それはログ出力を代行してしまっているからです。
96
+
97
+ (代行する関数の場所がわかったとしてもエラー発生源は分かりません)
98
+
99
+ ```
100
+
101
+ C:/Users/(ユーザー名)/Documents/Project/handler/handlerutil/handlerutil.go:21:
102
+
103
+ ```
104
+
105
+
106
+
107
+ また、エラーログ出力を代行する関数を起こす時にはセオリーがあって、以下の様にすると
108
+
109
+ ErrorLoggerラッパーを呼び出したコードの場所を表示することができます。
110
+
111
+ (これをしない場合、log機能はエラーを検出したところで使いましょう)
112
+
113
+
114
+
115
+ [https://play.golang.org/p/655wZJE9_s6](https://play.golang.org/p/655wZJE9_s6)
116
+
117
+ ```go
118
+
119
+ package main
120
+
121
+
122
+
123
+ import (
124
+
125
+ "fmt"
126
+
127
+ "log"
128
+
129
+ "runtime"
130
+
131
+ )
132
+
133
+
134
+
135
+ func ErrorLogger(err error) {
136
+
137
+ _, src, l, _ := runtime.Caller(1)
138
+
139
+ log.Printf("%s:%d %v", src, l, err)
140
+
141
+ }
142
+
143
+
144
+
145
+ func main() {
146
+
147
+ ErrorLogger(fmt.Errorf("failed"))
148
+
149
+ }
150
+
151
+ ```