File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -37,13 +37,29 @@ var (
3737 errBadConnNoWrite = errors .New ("bad connection" )
3838)
3939
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 ))
4141
4242// Logger is used to log critical error messages.
4343type Logger interface {
4444 Print (v ... any )
4545}
4646
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+
4763// NopLogger is a nop implementation of the Logger interface.
4864type NopLogger struct {}
4965
You can’t perform that action at this time.
0 commit comments