starlog/presets.go

92 lines
2.0 KiB
Go
Raw Normal View History

2026-03-19 16:37:57 +08:00
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
}