File tree 1 file changed +17
-1
lines changed
1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -37,13 +37,29 @@ var (
37
37
errBadConnNoWrite = errors .New ("bad connection" )
38
38
)
39
39
40
- var defaultLogger = Logger (log .New (os .Stderr , "[mysql] " , log .Ldate | log .Ltime | log .Lshortfile ))
40
+ var defaultLogger = StdLogger (log .New (os .Stderr , "[mysql] " , log .Ldate | log .Ltime | log .Lshortfile ))
41
41
42
42
// Logger is used to log critical error messages.
43
43
type Logger interface {
44
44
Print (v ... any )
45
45
}
46
46
47
+ // stdLog wraps log.Logger to adjust calldepth.
48
+ type stdLog struct {
49
+ l * log.Logger
50
+ }
51
+
52
+ func (s * stdLog ) Print (v ... any ) {
53
+ // log.Logger.Print() uses a calldepth of 2.
54
+ // We need to skip one more frame for mysqlConn.log().
55
+ _ = s .l .Output (3 , fmt .Sprint (v ... ))
56
+ }
57
+
58
+ // StdLogger creates a Logger that wraps a log.Logger.
59
+ func StdLogger (l * log.Logger ) Logger {
60
+ return & stdLog {l }
61
+ }
62
+
47
63
// NopLogger is a nop implementation of the Logger interface.
48
64
type NopLogger struct {}
49
65
You can’t perform that action at this time.
0 commit comments