回答編集履歴
1
追記
answer
CHANGED
@@ -41,4 +41,36 @@
|
|
41
41
|
fmt.Println(ParseJsonBody(dummyReq, &loginUser))
|
42
42
|
fmt.Println(loginUser)
|
43
43
|
}
|
44
|
+
```
|
45
|
+
|
46
|
+
## 追記
|
47
|
+
|
48
|
+
質問にある以下の表示は問題解決に相応しくありません。それはログ出力を代行してしまっているからです。
|
49
|
+
(代行する関数の場所がわかったとしてもエラー発生源は分かりません)
|
50
|
+
```
|
51
|
+
C:/Users/(ユーザー名)/Documents/Project/handler/handlerutil/handlerutil.go:21:
|
52
|
+
```
|
53
|
+
|
54
|
+
また、エラーログ出力を代行する関数を起こす時にはセオリーがあって、以下の様にすると
|
55
|
+
ErrorLoggerラッパーを呼び出したコードの場所を表示することができます。
|
56
|
+
(これをしない場合、log機能はエラーを検出したところで使いましょう)
|
57
|
+
|
58
|
+
[https://play.golang.org/p/655wZJE9_s6](https://play.golang.org/p/655wZJE9_s6)
|
59
|
+
```go
|
60
|
+
package main
|
61
|
+
|
62
|
+
import (
|
63
|
+
"fmt"
|
64
|
+
"log"
|
65
|
+
"runtime"
|
66
|
+
)
|
67
|
+
|
68
|
+
func ErrorLogger(err error) {
|
69
|
+
_, src, l, _ := runtime.Caller(1)
|
70
|
+
log.Printf("%s:%d %v", src, l, err)
|
71
|
+
}
|
72
|
+
|
73
|
+
func main() {
|
74
|
+
ErrorLogger(fmt.Errorf("failed"))
|
75
|
+
}
|
44
76
|
```
|