24 lines
414 B
Go
24 lines
414 B
Go
|
|
package observability
|
||
|
|
|
||
|
|
import (
|
||
|
|
"go.uber.org/zap"
|
||
|
|
"go.uber.org/zap/zapcore"
|
||
|
|
)
|
||
|
|
|
||
|
|
func NewLogger(level, format string) (*zap.Logger, error) {
|
||
|
|
var cfg zap.Config
|
||
|
|
if format == "json" {
|
||
|
|
cfg = zap.NewProductionConfig()
|
||
|
|
} else {
|
||
|
|
cfg = zap.NewDevelopmentConfig()
|
||
|
|
}
|
||
|
|
|
||
|
|
lvl, err := zapcore.ParseLevel(level)
|
||
|
|
if err != nil {
|
||
|
|
lvl = zapcore.InfoLevel
|
||
|
|
}
|
||
|
|
cfg.Level = zap.NewAtomicLevelAt(lvl)
|
||
|
|
|
||
|
|
return cfg.Build()
|
||
|
|
}
|