Change project structure a bit

This commit is contained in:
2025-06-02 21:00:50 +03:00
parent 035045ce90
commit b1c34f77ce
7 changed files with 20 additions and 14 deletions
+13
View File
@@ -0,0 +1,13 @@
package jsonlog
import "github.com/sirupsen/logrus"
type Level logrus.Level
const (
FatalLevel = Level(logrus.FatalLevel)
ErrorLevel = Level(logrus.ErrorLevel)
WarnLevel = Level(logrus.WarnLevel)
InfoLevel = Level(logrus.InfoLevel)
DebugLevel = Level(logrus.DebugLevel)
)
+55
View File
@@ -0,0 +1,55 @@
package jsonlog
import (
"time"
"github.com/sirupsen/logrus"
)
const appNameKey = "app_name"
var fieldMap = logrus.FieldMap{
logrus.FieldKeyTime: "@timestamp",
logrus.FieldKeyMsg: "message",
}
type Logger interface {
WithField(key string, value any) Logger
Info(...any)
Error(error, ...any)
FatalError(error, ...any)
}
type Config struct {
AppName string
Level Level
}
func NewLogger(config *Config) Logger {
impl := logrus.New()
impl.SetFormatter(&logrus.JSONFormatter{
TimestampFormat: time.RFC3339Nano,
FieldMap: fieldMap,
})
impl.SetLevel(logrus.Level(config.Level))
return &logger{
FieldLogger: impl.WithField(appNameKey, config.AppName),
}
}
type logger struct {
logrus.FieldLogger
}
func (l *logger) WithField(key string, value any) Logger {
return &logger{l.FieldLogger.WithField(key, value)}
}
func (l *logger) Error(err error, args ...any) {
l.FieldLogger.WithError(err).Error(args...)
}
func (l *logger) FatalError(err error, args ...any) {
l.FieldLogger.WithError(err).Fatal(args...)
}