# rlog **Repository Path**: ruige_fun/rlog ## Basic Information - **Project Name**: rlog - **Description**: 彩色日志输出 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-12 - **Last Updated**: 2024-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 打印彩色日志 默认 ![1](1.png) 全彩 ![2](2.png) 支持的打印与设置 ````go type RLogger interface { Print(a ...any) Println(a ...any) Printf(format string, a ...any) Debug(a ...any) DebugF(format string, a ...any) Info(a ...any) InfoF(format string, a ...any) Success(a ...any) SuccessF(format string, a ...any) Warn(a ...any) WarnF(format string, a ...any) Error(a ...any) ErrorF(format string, a ...any) Panic(a ...any) PanicF(format string, a ...any) ExitError(a ...any) //退出程序并且打印错误,并且立即退出关闭程序,os.Exit(1)。 ExitErrorAndSleep3(a ...any) //退出程序并且打印错误,延时3秒后退出关闭程序,os.Exit(1)。 Recover() //协程崩溃恢复,并且打印崩溃日志。 recover(content string) PrintlnConsoleMust(a ...any) //强制打印到控制台日志 PrintlnFileMust(a ...any) //强制打印到文件 PrintlnConsoleMustOnly(a ...any) //强制只打印到控制台日志 PrintlnFileMustOnly(a ...any) //强制只打印到文件 SetLogFilePath(filepath string, oldLogToZip bool) //设置日志文件路径 SetConsoleLevel(level Level) //设置控制台日志打印等级 SetFileLevel(level Level) //设置文件日志打印等级 SetFullTextStaining(full bool) //设置是否全文着色,默认false:tag 着色。 SetAutoDeleteOldLogFile(day uint) //设置自动删除多少天前的日志 SetLogFileMaxSize(mb uint) //设置日志文件最大大小,MB SetRuntimeCaller(skip int) } ```` # 优雅的初始化 ````go package main import ( "time" "gitee.com/ruige_fun/rlog" ) func init() { rlog.Init() //这个必须在项目的main.go里面初始化,会去计算项目文件所在的文件夹。 rlog.SetFullTextStaining(true) //设置为全彩打印日志 } func main() { rlog.Print("你好呀", time.Now().Year(), "哈哈哈") rlog.Printf("你好呀%v哈哈哈", time.Now().Year()) rlog.Println("你好呀", time.Now().Year(), "哈哈哈") rlog.Debug("你好呀") rlog.Info("你好呀") rlog.Success("你好呀") rlog.Warn("你好呀") rlog.Error("你好呀") rlog.Panic("你好呀") } ```` # 推荐的初始化方式 ````go package main import ( "os" "os/signal" "syscall" "time" "gitee.com/ruige_fun/rlog" ) func init() { rlog.Init() //这个必须在项目的main.go里面初始化,会去计算项目文件所在的文件夹。 rlog.SetFullTextStaining(true) //设置为全彩打印日志 } func main() { var ch = make(chan os.Signal) //信号通道 go PrintInfo() //开个协程去执行服务代码 signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) <-ch rlog.WaitFinish() //安全结束日志打印 } func PrintInfo() { for { rlog.Print("你好呀", time.Now().Year(), "哈哈哈") rlog.Printf("你好呀%v哈哈哈", time.Now().Year()) rlog.Println("你好呀", time.Now().Year(), "哈哈哈") rlog.Debug("你好呀") rlog.Info("你好呀") rlog.Success("你好呀") rlog.Warn("你好呀") rlog.Error("你好呀") rlog.Panic("你好呀") time.Sleep(time.Second) } } ```` # 特点 - 支持彩色打印日志 - 支持打印到控制台和打印到日志文件 - 支持日志文件切割,按日志文件大小切割 - 支持切割的旧日志文件自动按日期重命名,并且压缩为zip文件。 - 支持日志打印级别:Debug,Info,Success,Warn,Error,Panic。