76 lines
1.3 KiB
Go
76 lines
1.3 KiB
Go
package logger
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
|
|
jsoniter "github.com/json-iterator/go"
|
|
"github.com/rs/zerolog"
|
|
"github.com/samber/lo"
|
|
)
|
|
|
|
var logger *zerolog.Logger
|
|
|
|
func init() {
|
|
var writers []io.Writer
|
|
|
|
writers = append(writers, zerolog.ConsoleWriter{Out: os.Stderr})
|
|
writers = append(writers, newRollingWriter())
|
|
mw := io.MultiWriter(writers...)
|
|
logger = lo.ToPtr(zerolog.New(mw).With().Timestamp().Logger())
|
|
logger.Info().Msg("Logger initialized.")
|
|
}
|
|
|
|
func GetLogger() *zerolog.Logger {
|
|
return logger
|
|
}
|
|
|
|
func Panic() *zerolog.Event {
|
|
return logger.Panic()
|
|
}
|
|
|
|
func Fatal() *zerolog.Event {
|
|
return logger.Fatal()
|
|
}
|
|
|
|
func Error() *zerolog.Event {
|
|
return logger.Error()
|
|
}
|
|
|
|
func Warn() *zerolog.Event {
|
|
return logger.Warn()
|
|
}
|
|
|
|
func Info() *zerolog.Event {
|
|
return logger.Info()
|
|
}
|
|
|
|
func Debug() *zerolog.Event {
|
|
return logger.Debug()
|
|
}
|
|
|
|
func Trace() *zerolog.Event {
|
|
return logger.Trace()
|
|
}
|
|
|
|
func Print(v ...interface{}) {
|
|
logger.Print(v...)
|
|
}
|
|
|
|
func Printf(format string, v ...interface{}) {
|
|
logger.Printf(format, v...)
|
|
}
|
|
|
|
func With() zerolog.Context {
|
|
return logger.With()
|
|
}
|
|
|
|
func FormatAny(v interface{}) string {
|
|
b, err := jsoniter.MarshalToString(v)
|
|
if err != nil {
|
|
logger.Error().Str("process", "log").Err(err).Stack().Msg("Value marshal failed.")
|
|
return ""
|
|
}
|
|
return b
|
|
}
|