package logx type LogRotationRuleType int const ( LogRotationRuleTypeDaily LogRotationRuleType = iota LogRotationRuleTypeSizeLimit ) // A LogConf is a logging config. type LogConf struct { ServiceName string `json:",optional"` Mode string `json:",default=console,options=[console,file,volume]"` Encoding string `json:",default=json,options=[json,plain]"` TimeFormat string `json:",optional"` Path string `json:",default=logs"` Level string `json:",default=info,options=[info,error,severe]"` Compress bool `json:",optional"` KeepDays int `json:",optional"` StackCooldownMillis int `json:",default=100"` // MaxBackups represents how many backup log files will be kept. 0 means all files will be kept forever. // Only take effect when RotationRuleType is `LogRotationRuleTypeSizeLimit` // NOTE: the level of option `KeepDays` will be higher. Even thougth `MaxBackups` sets 0, log files will // still be removed if the `KeepDays` limitation is reached. MaxBackups int `json:",default=0"` // MaxSize represents how much space the writing log file takes up. 0 means no limit. The unit is `MB`. // Only take effect when RotationRuleType is `LogRotationRuleTypeSizeLimit` MaxSize int `json:",default=0"` // RotationRuleType represents the type of log rotation rule. Default is DailyRotateRule. // 0: LogRotationRuleTypeDaily // 1: LogRotationRuleTypeSizeLimit RotationRuleType LogRotationRuleType `json:",default=0,options=[0,1]"` }