extract common parts in logger and optimize code
This commit is contained in:
parent
ce610a9560
commit
bb8b43df61
@ -105,6 +105,21 @@ type logger struct {
|
|||||||
traceStr, traceErrStr, traceWarnStr string
|
traceStr, traceErrStr, traceWarnStr string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *logger) printf(ctx context.Context, str, msg string, level LogLevel, data ...interface{}) {
|
||||||
|
if l.LogLevel >= level {
|
||||||
|
l.Printf(str+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *logger) trace(ctx context.Context, fc func() (string, int64), ft string, used time.Duration, trace interface{}) {
|
||||||
|
sql, rows := fc()
|
||||||
|
if rows == -1 {
|
||||||
|
l.Printf(ft, utils.FileWithLineNum(), trace, float64(used.Nanoseconds())/1e6, "-", sql)
|
||||||
|
} else {
|
||||||
|
l.Printf(ft, utils.FileWithLineNum(), trace, float64(used.Nanoseconds())/1e6, rows, sql)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// LogMode log mode
|
// LogMode log mode
|
||||||
func (l *logger) LogMode(level LogLevel) Interface {
|
func (l *logger) LogMode(level LogLevel) Interface {
|
||||||
newlogger := *l
|
newlogger := *l
|
||||||
@ -114,23 +129,17 @@ func (l *logger) LogMode(level LogLevel) Interface {
|
|||||||
|
|
||||||
// Info print info
|
// Info print info
|
||||||
func (l logger) Info(ctx context.Context, msg string, data ...interface{}) {
|
func (l logger) Info(ctx context.Context, msg string, data ...interface{}) {
|
||||||
if l.LogLevel >= Info {
|
l.printf(ctx, l.infoStr, msg, Info, data...)
|
||||||
l.Printf(l.infoStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Warn print warn messages
|
// Warn print warn messages
|
||||||
func (l logger) Warn(ctx context.Context, msg string, data ...interface{}) {
|
func (l logger) Warn(ctx context.Context, msg string, data ...interface{}) {
|
||||||
if l.LogLevel >= Warn {
|
l.printf(ctx, l.warnStr, msg, Warn, data...)
|
||||||
l.Printf(l.warnStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error print error messages
|
// Error print error messages
|
||||||
func (l logger) Error(ctx context.Context, msg string, data ...interface{}) {
|
func (l logger) Error(ctx context.Context, msg string, data ...interface{}) {
|
||||||
if l.LogLevel >= Error {
|
l.printf(ctx, l.errStr, msg, Error, data...)
|
||||||
l.Printf(l.errStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trace print sql message
|
// Trace print sql message
|
||||||
@ -138,28 +147,13 @@ func (l logger) Trace(ctx context.Context, begin time.Time, fc func() (string, i
|
|||||||
if l.LogLevel > Silent {
|
if l.LogLevel > Silent {
|
||||||
elapsed := time.Since(begin)
|
elapsed := time.Since(begin)
|
||||||
switch {
|
switch {
|
||||||
case err != nil && l.LogLevel >= Error:
|
|
||||||
sql, rows := fc()
|
|
||||||
if rows == -1 {
|
|
||||||
l.Printf(l.traceErrStr, utils.FileWithLineNum(), err, float64(elapsed.Nanoseconds())/1e6, "-", sql)
|
|
||||||
} else {
|
|
||||||
l.Printf(l.traceErrStr, utils.FileWithLineNum(), err, float64(elapsed.Nanoseconds())/1e6, rows, sql)
|
|
||||||
}
|
|
||||||
case elapsed > l.SlowThreshold && l.SlowThreshold != 0 && l.LogLevel >= Warn:
|
|
||||||
sql, rows := fc()
|
|
||||||
slowLog := fmt.Sprintf("SLOW SQL >= %v", l.SlowThreshold)
|
|
||||||
if rows == -1 {
|
|
||||||
l.Printf(l.traceWarnStr, utils.FileWithLineNum(), slowLog, float64(elapsed.Nanoseconds())/1e6, "-", sql)
|
|
||||||
} else {
|
|
||||||
l.Printf(l.traceWarnStr, utils.FileWithLineNum(), slowLog, float64(elapsed.Nanoseconds())/1e6, rows, sql)
|
|
||||||
}
|
|
||||||
case l.LogLevel == Info:
|
case l.LogLevel == Info:
|
||||||
sql, rows := fc()
|
l.trace(ctx, fc, l.traceStr, elapsed, err)
|
||||||
if rows == -1 {
|
case err != nil && l.LogLevel >= Error:
|
||||||
l.Printf(l.traceStr, utils.FileWithLineNum(), float64(elapsed.Nanoseconds())/1e6, "-", sql)
|
l.trace(ctx, fc, l.traceErrStr, elapsed, err)
|
||||||
} else {
|
case elapsed > l.SlowThreshold && l.SlowThreshold != 0 && l.LogLevel >= Warn:
|
||||||
l.Printf(l.traceStr, utils.FileWithLineNum(), float64(elapsed.Nanoseconds())/1e6, rows, sql)
|
slowLog := fmt.Sprintf("SLOW SQL >= %v", l.SlowThreshold)
|
||||||
}
|
l.trace(ctx, fc, l.traceWarnStr, elapsed, slowLog)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user