Skip to content

Commit 3a5767c

Browse files
authored
Merge pull request #94 from pavelnikolov/recovery-logger-interface-instead-of-struct
Use logger interface in recovery handler (#92)
2 parents e1b2144 + 3fda98c commit 3a5767c

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

recovery.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@ import (
66
"runtime/debug"
77
)
88

9+
// RecoveryHandlerLogger is an interface used by the recovering handler to print logs.
10+
type RecoveryHandlerLogger interface {
11+
Println(...interface{})
12+
}
13+
914
type recoveryHandler struct {
1015
handler http.Handler
11-
logger *log.Logger
16+
logger RecoveryHandlerLogger
1217
printStack bool
1318
}
1419

@@ -46,7 +51,7 @@ func RecoveryHandler(opts ...RecoveryOption) func(h http.Handler) http.Handler {
4651

4752
// RecoveryLogger is a functional option to override
4853
// the default logger
49-
func RecoveryLogger(logger *log.Logger) RecoveryOption {
54+
func RecoveryLogger(logger RecoveryHandlerLogger) RecoveryOption {
5055
return func(h http.Handler) {
5156
r := h.(*recoveryHandler)
5257
r.logger = logger
@@ -73,11 +78,11 @@ func (h recoveryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
7378
h.handler.ServeHTTP(w, req)
7479
}
7580

76-
func (h recoveryHandler) log(message interface{}) {
81+
func (h recoveryHandler) log(v ...interface{}) {
7782
if h.logger != nil {
78-
h.logger.Println(message)
83+
h.logger.Println(v...)
7984
} else {
80-
log.Println(message)
85+
log.Println(v...)
8186
}
8287

8388
if h.printStack {

0 commit comments

Comments
 (0)