go logger日志库
logger包介绍
logger支持功能
- logger支持自定义时间格式;
- logger支持不同的日志等级输出,能够有效提高日志输出性能和检索;
- logger支持控制台+文件+网络的三种方式输出,并且可以任意组合;
- logger支持控制台输出颜色区分;
- logger支持文本输出的自定制;
- logger支持网络日志传输,例如直连logstash发送;
- logger支持输出程序文件名和行数、时间等;
logger日志等级
等级 | 配置 | 释义 | 控制台颜色 |
0 | EMER | 系统级紧急,比如磁盘出错,内存异常,网络不可用等 | 红色底 |
1 | ALRT | 系统级警告,比如数据库访问异常,配置文件出错等 | 紫色 |
2 | CRIT | 系统级危险,比如权限出错,访问异常等 | 蓝色 |
3 | EROR | 用户级错误 | 红色 |
4 | WARN | 用户级警告 | 黄色 |
5 | INFO | 用户级重要 | 天蓝色 |
6 | DEBG | 用户级调试 | 绿色 |
7 | TRAC | 用户级基本输出,比如成员信息,结构体值等 | 绿色 |
logger安装
1 | go get github.com/wonderivan/logger |
简单使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | package main import "logger" func main() { logger.Trace( "this is Trace" ) // 由于默认输出,只会在控制台输出Debug及其以上日志,所以该条不会输出 logger.Debug( "this is Debug" ) logger.Info( "this is Info" ) logger.Warn( "this is Warn" ) logger.Error( "this is Error" ) logger.Crit( "this is Critical" ) logger.Alert( "this is Alert" ) logger.Emer( "this is Emergency" ) } |
参数配置
参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { "TimeFormat" : "2006-01-02 15:04:05" , // 输出日志开头时间格式 "Console" : { // 控制台日志配置 "level" : "TRAC" , // 控制台日志输出等级 "color" : true // 控制台日志颜色开关 }, "File" : { // 文件日志配置 "filename" : "app.log" , // 初始日志文件名 "level" : "TRAC" , // 日志文件日志输出等级 "daily" : true, // 跨天后是否创建新日志文件,当append=true时有效 "maxlines" : 1000000, // 日志文件最大行数,当append=true时有效 "maxsize" : 1, // 日志文件最大大小,当append=true时有效 "maxdays" : -1, // 日志文件有效期 "append" : true, // 是否支持日志追加 "permit" : "0660" // 新创建的日志文件权限属性 }, "Conn" : { // 网络日志配置 "net" : "tcp" , // 日志传输模式 "addr" : "10.1.55.10:1024" , // 日志接收服务器 "level" : "Warn" , // 网络日志输出等级 "reconnect" :true, // 网络断开后是否重连 "reconnectOnMsg" :false, // 发送完每条消息后是否断开网络 } } |
如何参数配置
由两种方式配置
通过调用logger.SetLogger(config string)方法设置参数,config支持json配置,也支持指定内容为json配置的文件路径,例如:
- 通过配置参数直接配置
1 | logger.SetLogger(`{ "Console" : { "level" : "DEBG" }}`) |
- 通过配置文件配置
1 | logger.SetLogger( "/home/log.json" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-02-18 Django之url路由