@@ -4,8 +4,6 @@ package logger
4
4
// Ref: https://betterstack.com/community/guides/logging/go/zap/#logging-errors-with-zap
5
5
6
6
import (
7
- "os"
8
-
9
7
"go.uber.org/zap"
10
8
"go.uber.org/zap/zapcore"
11
9
)
@@ -23,7 +21,10 @@ func BuildLogger(logLevel LogLevel, logOutputFormat string) Logger {
23
21
// Set up custom encoder configuration
24
22
encoderCfg := zap .NewProductionEncoderConfig ()
25
23
encoderCfg .TimeKey = "timestamp"
26
- encoderCfg .EncodeTime = zapcore .ISO8601TimeEncoder // Use ISO8601 format for timestamps
24
+ encoderCfg .EncodeTime = zapcore .RFC3339TimeEncoder // ISO8601TimeEncoder /Use ISO8601 format for timestamps
25
+ encoderCfg .EncodeLevel = zapcore .CapitalColorLevelEncoder // Encodes the level in uppercase (e.g., "INFO", "ERROR") with ANSI colour.
26
+ encoderCfg .EncodeCaller = zapcore .ShortCallerEncoder // Encodes the file and line number of the caller if the log level is at least DebugLevel
27
+ encoderCfg .EncodeName = zapcore .FullNameEncoder // Encodes the logger name
27
28
28
29
// Convert the custom LogLevel to zap's logging level
29
30
zapLogLevel := convertToZapLevel (logLevel )
@@ -62,34 +63,6 @@ func BuildLogger(logLevel LogLevel, logOutputFormat string) Logger {
62
63
}
63
64
}
64
65
65
- func NewHumanReadableLogger (logLevel LogLevel , logOutputFormat string ) Logger {
66
- encoderCfg := zap .NewProductionEncoderConfig ()
67
- encoderCfg .TimeKey = "timestamp"
68
- encoderCfg .EncodeTime = zapcore .ISO8601TimeEncoder
69
-
70
- var encoder zapcore.Encoder
71
- if logOutputFormat == LogOutputHumanReadable {
72
- // For human-readable format, use a console encoder with customized level encoder
73
- encoderCfg .EncodeLevel = zapcore .CapitalColorLevelEncoder
74
- encoder = zapcore .NewConsoleEncoder (encoderCfg )
75
- } else {
76
- // Default to JSON encoder for structured logging
77
- encoder = zapcore .NewJSONEncoder (encoderCfg )
78
- }
79
-
80
- core := zapcore .NewCore (encoder , zapcore .AddSync (os .Stdout ), convertToZapLevel (logLevel ))
81
-
82
- // Wrap the core with customCore to maintain field reordering logic
83
- wrappedCore := & customCore {Core : core }
84
-
85
- logger := zap .New (wrappedCore , zap .AddCaller ())
86
-
87
- return & defaultLogger {
88
- logger : logger ,
89
- logLevel : logLevel ,
90
- }
91
- }
92
-
93
66
// convertToZapLevel converts the custom LogLevel to a zapcore.Level
94
67
func convertToZapLevel (level LogLevel ) zapcore.Level {
95
68
switch level {
0 commit comments