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安装
go get github.com/wonderivan/logger
简单使用
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") }
参数配置
参数
{ "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配置的文件路径,例如:
- 通过配置参数直接配置
logger.SetLogger(`{"Console": {"level": "DEBG"}}`)
- 通过配置文件配置
logger.SetLogger("/home/log.json")