# go_logger **Repository Path**: lihaowen2017/go_logger ## Basic Information - **Project Name**: go_logger - **Description**: go日志库 1. 实现不同等级日志的文件输出,控制台输出(获取级别,日志时间,文件,调用函数名,行号,日志信息) A. Debug级别: 用来调试程序,日志最详细。对程序性能影响较大。 B. Trace级别: 用来追踪问题 C. Info级别: 打印程序运行过程中比较重要的信息,比如访问日志 D. Warn级别: 警告日志,说明程序运行出现了潜在的问题 E. Error级别: 错误日志,程序运行发生错误,但不影响程序运行 F. Fatal级别: 严重错误日志,发生的错误会导致程序退出 2. 设置日志写入缓存池以满足大量的日志文件写入 3. 日志自动切分功能实现(按时间及按大小) 按大小切分后文件名 wf 为警告文件 (.log.wf_年月日时分/.log_年月日时分) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-02-22 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##### 1. 实现不同等级日志的文件输出,控制台输出(获取级别,日志时间,文件,调用函数名,行号,日志信息) A. Debug级别: 用来调试程序,日志最详细。对程序性能影响较大。 B. Trace级别: 用来追踪问题 C. Info级别: 打印程序运行过程中比较重要的信息,比如访问日志 D. Warn级别: 警告日志,说明程序运行出现了潜在的问题 E. Error级别: 错误日志,程序运行发生错误,但不影响程序运行 F. Fatal级别: 严重错误日志,发生的错误会导致程序退出 ##### 2. 设置日志写入缓存池以满足大量的日志文件写入 ##### 3. 日志自动切分功能实现(按时间及按大小) 按大小切分后文件名 wf 为警告文件 (.log.wf_年月日时分/.log_年月日时分) ```go // example 使用案例 package main import ( "logger" "time" ) func initLogger(name, logPath, logName string, level string) (err error) { m := make(map[string]string, 8) m["log_path"] = logPath m["log_name"] = "user_server" m["log_level"] = level m["log_chan_size"] = "50000" // 写日志缓存池大小定义 m["log_split_type"] = "size" // 日志切分方式 hour 小时切分 size 大小切分 m["log_split_size"] = "104857600" // 按大小切分如果不传该参数,默认100M err = logger.InitLogger(name, m) if err != nil { return } logger.Debug("init logger success") return } func Run() { for { logger.Debug("user server is running, :\\user_server") time.Sleep(time.Second) } } func main() { initLogger("file", "G:/logs/", "user_server", "debug") Run() return } ```