| package common | |
| import ( | |
| "fmt" | |
| "github.com/gin-gonic/gin" | |
| "io" | |
| "log" | |
| "os" | |
| "path/filepath" | |
| "time" | |
| ) | |
| func SetupGinLog() { | |
| if *LogDir != "" { | |
| commonLogPath := filepath.Join(*LogDir, "common.log") | |
| errorLogPath := filepath.Join(*LogDir, "error.log") | |
| commonFd, err := os.OpenFile(commonLogPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) | |
| if err != nil { | |
| log.Fatal("failed to open log file") | |
| } | |
| errorFd, err := os.OpenFile(errorLogPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) | |
| if err != nil { | |
| log.Fatal("failed to open log file") | |
| } | |
| gin.DefaultWriter = io.MultiWriter(os.Stdout, commonFd) | |
| gin.DefaultErrorWriter = io.MultiWriter(os.Stderr, errorFd) | |
| } | |
| } | |
| func SysLog(s string) { | |
| t := time.Now() | |
| _, _ = fmt.Fprintf(gin.DefaultWriter, "[SYS] %v | %s \n", t.Format("2006/01/02 - 15:04:05"), s) | |
| } | |
| func SysError(s string) { | |
| t := time.Now() | |
| _, _ = fmt.Fprintf(gin.DefaultErrorWriter, "[SYS] %v | %s \n", t.Format("2006/01/02 - 15:04:05"), s) | |
| } | |
| func FatalLog(v ...any) { | |
| t := time.Now() | |
| _, _ = fmt.Fprintf(gin.DefaultErrorWriter, "[FATAL] %v | %v \n", t.Format("2006/01/02 - 15:04:05"), v) | |
| os.Exit(1) | |
| } | |
| func LogQuota(quota int) string { | |
| if DisplayInCurrencyEnabled { | |
| return fmt.Sprintf("$%.6f 额度", float64(quota)/QuotaPerUnit) | |
| } else { | |
| return fmt.Sprintf("%d 点额度", quota) | |
| } | |
| } | |