mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 08:39:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package util
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	// LevelError 错误
 | |
| 	LevelError = iota
 | |
| 	// LevelWarning 警告
 | |
| 	LevelWarning
 | |
| 	// LevelInformational 提示
 | |
| 	LevelInformational
 | |
| 	// LevelDebug 除错
 | |
| 	LevelDebug
 | |
| )
 | |
| 
 | |
| var logger *Logger
 | |
| 
 | |
| // Logger 日志
 | |
| type Logger struct {
 | |
| 	level int
 | |
| }
 | |
| 
 | |
| // Println 打印
 | |
| func (ll *Logger) Println(msg string) {
 | |
| 	fmt.Printf("%s %s", time.Now().Format("2006-01-02 15:04:05 -0700"), msg)
 | |
| }
 | |
| 
 | |
| // Panic 极端错误
 | |
| func (ll *Logger) Panic(format string, v ...interface{}) {
 | |
| 	if LevelError > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[Panic] "+format, v...)
 | |
| 	ll.Println(msg)
 | |
| 	panic(msg)
 | |
| }
 | |
| 
 | |
| // Error 错误
 | |
| func (ll *Logger) Error(format string, v ...interface{}) {
 | |
| 	if LevelError > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[Error] "+format, v...)
 | |
| 	ll.Println(msg)
 | |
| }
 | |
| 
 | |
| // Warning 警告
 | |
| func (ll *Logger) Warning(format string, v ...interface{}) {
 | |
| 	if LevelWarning > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[Warning] "+format, v...)
 | |
| 	ll.Println(msg)
 | |
| }
 | |
| 
 | |
| // Info 信息
 | |
| func (ll *Logger) Info(format string, v ...interface{}) {
 | |
| 	if LevelInformational > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[Info] "+format, v...)
 | |
| 	ll.Println(msg)
 | |
| }
 | |
| 
 | |
| // Debug 校验
 | |
| func (ll *Logger) Debug(format string, v ...interface{}) {
 | |
| 	if LevelDebug > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[Debug] "+format, v...)
 | |
| 	ll.Println(msg)
 | |
| }
 | |
| 
 | |
| // GORM 的 Logger实现
 | |
| func (ll *Logger) Print(v ...interface{}) {
 | |
| 	if LevelDebug > ll.level {
 | |
| 		return
 | |
| 	}
 | |
| 	msg := fmt.Sprintf("[SQL] %s", v...)
 | |
| 	ll.Println(msg)
 | |
| }
 | |
| 
 | |
| // BuildLogger 构建logger
 | |
| func BuildLogger(level string) {
 | |
| 	intLevel := LevelError
 | |
| 	switch level {
 | |
| 	case "error":
 | |
| 		intLevel = LevelError
 | |
| 	case "warning":
 | |
| 		intLevel = LevelWarning
 | |
| 	case "info":
 | |
| 		intLevel = LevelInformational
 | |
| 	case "debug":
 | |
| 		intLevel = LevelDebug
 | |
| 	}
 | |
| 	l := Logger{
 | |
| 		level: intLevel,
 | |
| 	}
 | |
| 	logger = &l
 | |
| }
 | |
| 
 | |
| // Log 返回日志对象
 | |
| func Log() *Logger {
 | |
| 	if logger == nil {
 | |
| 		l := Logger{
 | |
| 			level: LevelDebug,
 | |
| 		}
 | |
| 		logger = &l
 | |
| 	}
 | |
| 	return logger
 | |
| }
 | 
