| | |
| | | InfoLevel |
| | | DebugLevel |
| | | ) |
| | | |
| | | var loggerString string = "" |
| | | const ( |
| | | color_red = uint8(iota + 91) |
| | | color_green // 绿 |
| | | color_yellow // 黄 |
| | | color_blue // 蓝 |
| | | color_magenta // 洋红 |
| | | color_green // 绿 |
| | | color_yellow // 黄 |
| | | color_blue // 蓝 |
| | | color_magenta // 洋红 |
| | | ) |
| | | |
| | | const ( |
| | | fatalPrefix = "[FATAL] " |
| | | errorPrefix = "[ERROR] " |
| | | warnPrefix = "[WARN] " |
| | | infoPrefix = "[INFO] " |
| | | debugPrefix = "[DEBUG] " |
| | | fatalPrefix = "[FATAL] " |
| | | errorPrefix = "[ERROR] " |
| | | warnPrefix = "[WARN] " |
| | | infoPrefix = "[INFO] " |
| | | debugPrefix = "[DEBUG] " |
| | | ) |
| | | |
| | | const ( |
| | | ByDay int = iota |
| | | ByDay int = iota |
| | | ByWeek |
| | | ByMonth |
| | | BySize |
| | | ) |
| | | |
| | | type LogFile struct { |
| | | level int // 日志等级 |
| | | saveMode int // 保存模式 |
| | | saveDays int // 日志保存天数 |
| | | logTime int64 // |
| | | fileName string // 日志文件名 |
| | | filesize int64 // 文件大小, 需要设置 saveMode 为 BySize 生效 |
| | | level int // 日志等级 |
| | | saveMode int // 保存模式 |
| | | saveDays int // 日志保存天数 |
| | | logTime int64 // |
| | | fileName string // 日志文件名 |
| | | filesize int64 // 文件大小, 需要设置 saveMode 为 BySize 生效 |
| | | fileFd *os.File |
| | | } |
| | | |
| | | var logFile LogFile |
| | | |
| | | func init() { |
| | | logFile.saveMode = ByDay // 默认按天保存 |
| | | logFile.saveDays = 15 // 默认保存三天的 |
| | | logFile.level = ErrorLevel |
| | | logFile.filesize = 1024 * 1024 * 10 // 默认10M, 需要设置 saveMode 为 BySize |
| | | logFile.saveMode = ByDay // 默认按天保存 |
| | | logFile.saveDays = 7 // 默认保存三天的 |
| | | logFile.level = DebugLevel |
| | | //logFile.filesize = 1024 * 1024 * 10 // 默认10M, 需要设置 saveMode 为 BySize |
| | | } |
| | | |
| | | func Config(logFolder string, level int) { |
| | |
| | | if logFile.level >= DebugLevel { |
| | | log.SetPrefix(blue(debugPrefix)) |
| | | _ = log.Output(2, fmt.Sprintln(args...)) |
| | | //loggerString += fmt.Sprintln(args...) |
| | | } |
| | | } |
| | | |
| | | func Info(args ...interface{}) { |
| | | if logFile.level >= InfoLevel { |
| | | log.SetPrefix(green(infoPrefix)) |
| | | _ = log.Output(2, fmt.Sprintln(args...)) |
| | | //_ = log.Output(2, fmt.Sprintln(args...)) |
| | | loggerString += fmt.Sprintln(args...) |
| | | } |
| | | } |
| | | |
| | |
| | | if logFile.level >= WarnLevel { |
| | | log.SetPrefix(magenta(warnPrefix)) |
| | | _ = log.Output(2, fmt.Sprintln(args...)) |
| | | //loggerString += fmt.Sprintln(args...) |
| | | } |
| | | } |
| | | |
| | |
| | | if logFile.level >= ErrorLevel { |
| | | log.SetPrefix(red(errorPrefix)) |
| | | _ = log.Output(2, fmt.Sprintln(args...)) |
| | | //loggerString += fmt.Sprintln(args...) |
| | | } |
| | | } |
| | | |
| | | func Fatalf(args ...interface{}) { |
| | | func Fatal(args ...interface{}) { |
| | | if logFile.level >= FatalLevel { |
| | | log.SetPrefix(red(fatalPrefix)) |
| | | _ = log.Output(2, fmt.Sprintln(args...)) |
| | | //loggerString += fmt.Sprintln(args...) |
| | | } |
| | | } |
| | | func OutPutByPanlei() { |
| | | _ = log.Output(2, loggerString) |
| | | } |
| | | |
| | | func GetRedPrefix(s string) string { |
| | |
| | | logFile.logTime = time.Now().Unix() |
| | | } |
| | | } |
| | | default: // 默认按天 ByDay |
| | | default: // 默认按天 ByDay |
| | | if logFile.logTime+3600 < time.Now().Unix() { |
| | | logFile.createLogFile() |
| | | logFile.logTime = time.Now().Unix() |
| | |
| | | } |
| | | |
| | | now := time.Now() |
| | | filename := fmt.Sprintf("%s_%04d%02d%02d_%02d%02d", |
| | | me.fileName, now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute()) |
| | | filename := fmt.Sprintf("%s_%04d%02d%02d", |
| | | me.fileName, now.Year(), now.Month(), now.Day()) |
| | | if err := os.Rename(me.fileName, filename); err == nil { |
| | | go func() { |
| | | tarCmd := exec.Command("tar", "-zcf", filename+".tar.gz", filename, "--remove-files") |