diff --git a/server/logs/fmt.go b/server/logs/fmt.go deleted file mode 100644 index fdff3ab..0000000 --- a/server/logs/fmt.go +++ /dev/null @@ -1,60 +0,0 @@ -package logs - -import ( - "encoding/json" - "fmt" - "time" - - "github.com/sirupsen/logrus" -) - -// LogJSONFormatter is a custom log formatter for JSON output -type LogJSONFormatter struct { -} - -// Format formats the log entry to JSON -func (f *LogJSONFormatter) Format(entry *logrus.Entry) ([]byte, error) { - data := make(logrus.Fields) - - // Include the log level, message, and time in the JSON output - data["level"] = entry.Level.String() - data["msg"] = entry.Message - data["time"] = entry.Time.UTC().Format(time.RFC3339) - - // Include additional fields from the entry - for k, v := range entry.Data { - data[k] = v - } - - // Marshal the JSON data - jsonData, err := json.Marshal(data) - if err != nil { - return nil, fmt.Errorf("failed to marshal log entry to JSON: %v", err) - } - - // Append a newline to the JSON data - return append(jsonData, '\n'), nil -} - -// ParseLogLine parses the log line and extracts the log level, message, and time -func ParseLogLine(line string) (logrus.Level, string, time.Time, error) { - var entry struct { - Level string `json:"level"` - Msg string `json:"msg"` - Time time.Time `json:"time"` - } - - // Unmarshal the JSON data - err := json.Unmarshal([]byte(line), &entry) - if err != nil { - return logrus.InfoLevel, "", time.Time{}, fmt.Errorf("failed to unmarshal log line: %v", err) - } - - // Convert the log level string to logrus.Level - level, err := logrus.ParseLevel(entry.Level) - if err != nil { - return logrus.InfoLevel, "", time.Time{}, fmt.Errorf("failed to parse log level: %v", err) - } - - return level, entry.Msg, entry.Time, nil -} diff --git a/server/logs/logs.go b/server/logs/logs.go index 449f050..77db4cf 100644 --- a/server/logs/logs.go +++ b/server/logs/logs.go @@ -7,22 +7,11 @@ import ( log "github.com/sirupsen/logrus" ) -// LogUTCFormatter hels in setting UTC time format for the logs -type LogUTCFormatter struct { - log.Formatter -} - -// Format helps fomratting time to UTC -func (u LogUTCFormatter) Format(e *log.Entry) ([]byte, error) { - e.Time = e.Time.UTC() - return u.Formatter.Format(e) -} - func InitLog(cliLogLevel string) *log.Logger { // log instance for gin server log := logrus.New() - log.SetFormatter(&LogJSONFormatter{}) + log.SetFormatter(&LogTextFormatter{}) if cliLogLevel == "" { cliLogLevel = os.Getenv("LOG_LEVEL") diff --git a/server/logs/text.go b/server/logs/text.go new file mode 100644 index 0000000..f7ed2d1 --- /dev/null +++ b/server/logs/text.go @@ -0,0 +1,18 @@ +package logs + +import ( + "fmt" + "strings" + + "github.com/sirupsen/logrus" +) + +// LogTextFormatter is a custom log formatter for text output +type LogTextFormatter struct { + logrus.Formatter +} + +// Format helps fomratting time to UTC +func (u LogTextFormatter) Format(e *logrus.Entry) ([]byte, error) { + return []byte(fmt.Sprintf("[%s] %s", strings.ToUpper(e.Level.String()), e.Message)), nil +} diff --git a/server/logs/utc.go b/server/logs/utc.go new file mode 100644 index 0000000..585b879 --- /dev/null +++ b/server/logs/utc.go @@ -0,0 +1,16 @@ +package logs + +import ( + log "github.com/sirupsen/logrus" +) + +// LogUTCFormatter hels in setting UTC time format for the logs +type LogUTCFormatter struct { + log.Formatter +} + +// Format helps fomratting time to UTC +func (u LogUTCFormatter) Format(e *log.Entry) ([]byte, error) { + e.Time = e.Time.UTC() + return u.Formatter.Format(e) +} diff --git a/server/main.go b/server/main.go index b801e33..79b924c 100644 --- a/server/main.go +++ b/server/main.go @@ -28,7 +28,7 @@ func main() { flag.Parse() // global log level - logrus.SetFormatter(&logs.LogJSONFormatter{}) + logrus.SetFormatter(&logs.LogTextFormatter{}) constants.VERSION = VERSION