Skip to content

Commit 62847f6

Browse files
authored
log: add "filename:line" prefix by ourself (#1593)
#1563 broke the filename:lineno prefix in the log message by introducing a helper function. This commit adds the "filename:line" prefix in the helper function instead of log.Lshortfile option to show correct filename:lineno. (cherry picked from commit 2f7015e)
1 parent 4395c45 commit 62847f6

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

connection.go

+12
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ import (
1313
"database/sql"
1414
"database/sql/driver"
1515
"encoding/json"
16+
"fmt"
1617
"io"
1718
"net"
19+
"runtime"
1820
"strconv"
1921
"strings"
2022
"time"
@@ -46,6 +48,16 @@ type mysqlConn struct {
4648

4749
// Helper function to call per-connection logger.
4850
func (mc *mysqlConn) log(v ...any) {
51+
_, filename, lineno, ok := runtime.Caller(1)
52+
if ok {
53+
pos := strings.LastIndexByte(filename, '/')
54+
if pos != -1 {
55+
filename = filename[pos+1:]
56+
}
57+
prefix := fmt.Sprintf("%s:%d ", filename, lineno)
58+
v = append([]any{prefix}, v...)
59+
}
60+
4961
mc.cfg.Logger.Print(v...)
5062
}
5163

errors.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ 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 = Logger(log.New(os.Stderr, "[mysql] ", log.Ldate|log.Ltime))
4141

4242
// Logger is used to log critical error messages.
4343
type Logger interface {

0 commit comments

Comments
 (0)