ariadne/internal/platform/logging/logging.go
2026-07-24 05:45:04 +09:00

32 lines
588 B
Go

package logging
import (
"context"
"git.toki-labs.com/toki/ariadne/internal/platform/config"
"go.uber.org/fx"
"go.uber.org/zap"
)
func New(lifecycle fx.Lifecycle, cfg config.Config) (*zap.Logger, error) {
var (
logger *zap.Logger
err error
)
if cfg.Environment == "development" {
logger, err = zap.NewDevelopment(zap.AddStacktrace(zap.ErrorLevel))
} else {
logger, err = zap.NewProduction()
}
if err != nil {
return nil, err
}
lifecycle.Append(fx.Hook{
OnStop: func(context.Context) error {
_ = logger.Sync()
return nil
},
})
return logger, nil
}