|
|
@ -1,7 +1,6 @@ |
|
|
|
package logger |
|
|
|
|
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"github.com/gookit/color" |
|
|
|
"github.com/petermattis/goid" |
|
|
|
"go.uber.org/zap/zapcore" |
|
|
@ -11,6 +10,11 @@ import ( |
|
|
|
"time" |
|
|
|
) |
|
|
|
|
|
|
|
// / getGid return goroutine id with string.
|
|
|
|
func getGid() string { |
|
|
|
return strconv.FormatInt(goid.Get(), 10) |
|
|
|
} |
|
|
|
|
|
|
|
// getCaller calculate relative source path of caller.
|
|
|
|
func getCaller(ec zapcore.EntryCaller, verbose bool) string { |
|
|
|
file, err := filepath.Rel(project, ec.File) |
|
|
@ -32,33 +36,28 @@ func timeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) { |
|
|
|
// timeColoredEncoder formats the time as a colored string
|
|
|
|
// with custom prefix.
|
|
|
|
func timeColoredEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) { |
|
|
|
enc.AppendString(fmt.Sprintf( |
|
|
|
"%s %s", |
|
|
|
color.Cyan.Render(logger.prefix), // colored prefix
|
|
|
|
color.Gray.Render(t.Format("2006-01-02 15:04:05.000")), |
|
|
|
)) |
|
|
|
enc.AppendString(color.Cyan.Render(logger.prefix)) |
|
|
|
enc.AppendString(color.Gray.Render(t.Format("2006-01-02 15:04:05.000"))) |
|
|
|
} |
|
|
|
|
|
|
|
// callerEncoder formats caller in square brackets.
|
|
|
|
func callerEncoder(ec zapcore.EntryCaller, enc zapcore.PrimitiveArrayEncoder) { |
|
|
|
if !logger.verbose { |
|
|
|
if logger.verbose { |
|
|
|
enc.AppendString("[" + getGid() + "]") |
|
|
|
enc.AppendString("[" + getCaller(ec, true) + "]") |
|
|
|
} else { |
|
|
|
enc.AppendString("[" + getCaller(ec, false) + "]") |
|
|
|
return |
|
|
|
} |
|
|
|
enc.AppendString(fmt.Sprintf("[%d] [%s]", goid.Get(), getCaller(ec, true))) |
|
|
|
} |
|
|
|
|
|
|
|
// callerColoredEncoder formats caller in square brackets with magenta color.
|
|
|
|
func callerColoredEncoder(ec zapcore.EntryCaller, enc zapcore.PrimitiveArrayEncoder) { |
|
|
|
if !logger.verbose { |
|
|
|
if logger.verbose { |
|
|
|
enc.AppendString(color.Blue.Render("[" + getGid() + "]")) |
|
|
|
enc.AppendString(color.Magenta.Render("[" + getCaller(ec, true) + "]")) |
|
|
|
} else { |
|
|
|
enc.AppendString(color.Magenta.Render("[" + getCaller(ec, false) + "]")) |
|
|
|
return |
|
|
|
} |
|
|
|
enc.AppendString(fmt.Sprintf( |
|
|
|
"%s %s", |
|
|
|
color.Blue.Render(fmt.Sprintf("[%d]", goid.Get())), |
|
|
|
color.Magenta.Render("["+getCaller(ec, true)+"]"), |
|
|
|
)) |
|
|
|
} |
|
|
|
|
|
|
|
// levelEncoder formats log level using square brackets.
|
|
|
|