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")
