package starlog import "io" func applyProductionPreset(cfg *Config) { if cfg == nil { return } cfg.Level = LvInfo cfg.StdErrLevel = LvError cfg.ShowColor = false cfg.OnlyColorLevel = false cfg.ShowStd = false cfg.ShowOriginFile = false cfg.ShowFuncName = false cfg.ShowFlag = false cfg.ShowLevel = true cfg.ShowFieldColor = false cfg.Formatter = NewJSONFormatter() cfg.PendingWriteLimit = 4096 cfg.PendingDropPolicy = PendingDropOldest cfg.RedactFailMode = RedactFailMaskAll cfg.RedactMaskToken = "[REDACTED]" cfg.Sampling = normalizeSamplingConfig(DefaultSamplingConfig()) cfg.Dedup = normalizeDedupConfig(DefaultDedupConfig()) } func applyDevelopmentPreset(cfg *Config) { if cfg == nil { return } cfg.Level = LvDebug cfg.StdErrLevel = LvError cfg.ShowColor = true cfg.OnlyColorLevel = true cfg.ShowStd = false cfg.ShowOriginFile = true cfg.ShowFuncName = true cfg.ShowFlag = true cfg.ShowLevel = true cfg.ShowFieldColor = true cfg.Formatter = nil cfg.PendingWriteLimit = 1024 cfg.PendingDropPolicy = PendingDropOldest cfg.RedactFailMode = RedactFailMaskAll cfg.RedactMaskToken = "[REDACTED]" cfg.Sampling = normalizeSamplingConfig(DefaultSamplingConfig()) cfg.Dedup = normalizeDedupConfig(DefaultDedupConfig()) } func NewProductionConfig() Config { cfg := DefaultConfig() applyProductionPreset(&cfg) return cfg } func NewDevelopmentConfig() Config { cfg := DefaultConfig() applyDevelopmentPreset(&cfg) return cfg } func (logger *StarLogger) ApplyProductionConfig() { if logger == nil { return } logger.UpdateConfig(func(cfg *Config) { applyProductionPreset(cfg) }) } func (logger *StarLogger) ApplyDevelopmentConfig() { if logger == nil { return } logger.UpdateConfig(func(cfg *Config) { applyDevelopmentPreset(cfg) }) } func NewProduction(out io.Writer) *StarLogger { logger := NewStarlog(out) logger.ApplyProductionConfig() return logger } func NewDevelopment(out io.Writer) *StarLogger { logger := NewStarlog(out) logger.ApplyDevelopmentConfig() return logger }