130 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package logger ...
 | 
						|
//
 | 
						|
// Description : logger ...
 | 
						|
//
 | 
						|
// Author : go_developer@163.com<白茶清欢>
 | 
						|
//
 | 
						|
// Date : 2025-10-30 17:19
 | 
						|
package logger
 | 
						|
 | 
						|
type LogLevel string
 | 
						|
 | 
						|
func (ll LogLevel) String() string {
 | 
						|
	return string(ll)
 | 
						|
}
 | 
						|
 | 
						|
func (ll LogLevel) MarshalJSON() ([]byte, error) {
 | 
						|
	return []byte(`"` + ll.String() + `"`), nil
 | 
						|
}
 | 
						|
 | 
						|
func (ll LogLevel) IsValid() bool {
 | 
						|
	levelList := []LogLevel{
 | 
						|
		LogLevelDebug,
 | 
						|
		LogLevelInfo,
 | 
						|
		LogLevelWarn,
 | 
						|
		LogLevelError,
 | 
						|
		LogLevelPanic,
 | 
						|
	}
 | 
						|
	for _, level := range levelList {
 | 
						|
		if level == ll {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
const (
 | 
						|
	LogLevelDebug LogLevel = "DEBUG"
 | 
						|
	LogLevelInfo  LogLevel = "INFO"
 | 
						|
	LogLevelWarn  LogLevel = "WARN"
 | 
						|
	LogLevelError LogLevel = "ERROR"
 | 
						|
	LogLevelPanic LogLevel = "PANIC"
 | 
						|
)
 | 
						|
 | 
						|
type LogSplit string
 | 
						|
 | 
						|
func (ls LogSplit) String() string {
 | 
						|
	return string(ls)
 | 
						|
}
 | 
						|
func (ls LogSplit) MarshalJSON() ([]byte, error) {
 | 
						|
	return []byte(`"` + ls.String() + `"`), nil
 | 
						|
}
 | 
						|
 | 
						|
func (ls LogSplit) IsValid() bool {
 | 
						|
	for _, supportSplit := range SupportLogSplitList {
 | 
						|
		if supportSplit.Value == ls || supportSplit.Value.String() == ls.String() {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
const (
 | 
						|
	LogSplitHour  LogSplit = "HOUR"
 | 
						|
	LogSplitDay   LogSplit = "DAY"
 | 
						|
	LogSplitMonth LogSplit = "MONTH"
 | 
						|
	LogSplitYear  LogSplit = "YEAR"
 | 
						|
)
 | 
						|
 | 
						|
type LogSplitDesc struct {
 | 
						|
	Value LogSplit `json:"value"`
 | 
						|
	Desc  string   `json:"desc"`
 | 
						|
}
 | 
						|
 | 
						|
var (
 | 
						|
	SupportLogSplitList = []LogSplitDesc{
 | 
						|
		{
 | 
						|
			Value: LogSplitHour,
 | 
						|
			Desc:  "按小时切割",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Value: LogSplitDay,
 | 
						|
			Desc:  "按天切割",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Value: LogSplitMonth,
 | 
						|
			Desc:  "按月切割",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			Value: LogSplitYear,
 | 
						|
			Desc:  "按年切割",
 | 
						|
		},
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	LogPathDefault = "logs"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	LogMessageKey = "message"
 | 
						|
	LogLevelKey   = "level"
 | 
						|
	LogTimeKey    = "time"
 | 
						|
	LogCallerKey  = "caller"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	LogAccessName    = "access.log"
 | 
						|
	LogRequestName   = "request.log"
 | 
						|
	LogProxyName     = "proxy.log"
 | 
						|
	LogBusinessName  = "business.log"
 | 
						|
	LogMonitorName   = "monitor.log"
 | 
						|
	LogDatabaseName  = "database.log"
 | 
						|
	LogRateLimitName = "rate-limit.log"
 | 
						|
	LogEventName     = "event.log"
 | 
						|
	LogCacheName     = "cache.log"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	LogTypeAccess    = "access"     // 访问日志
 | 
						|
	LogTypeRequest   = "request"    // 请求日志
 | 
						|
	LogTypeOutput    = "output"     // 响应日志
 | 
						|
	LogTypeProxy     = "proxy"      // 代理请求日志
 | 
						|
	LogTypeBusiness  = "business"   // 业务日志
 | 
						|
	LogTypeMonitor   = "monitor"    // 监控日志
 | 
						|
	LogTypeDatabase  = "database"   // 数据库日志
 | 
						|
	LogTypeRateLimit = "rate-limit" // 流控日志
 | 
						|
	LogTypeEvent     = "event"      // 事件日志
 | 
						|
	LogTypeCache     = "cache"      // 缓存日志
 | 
						|
)
 |