92 lines
2.0 KiB
Go
92 lines
2.0 KiB
Go
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
|
|
}
|