logger包介绍

logger支持功能

  • logger支持自定义时间格式;
  • logger支持不同的日志等级输出,能够有效提高日志输出性能和检索;
  • logger支持控制台+文件+网络的三种方式输出,并且可以任意组合;
  • logger支持控制台输出颜色区分;
  • logger支持文本输出的自定制;
  • logger支持网络日志传输,例如直连logstash发送;
  • logger支持输出程序文件名和行数、时间等;

logger日志等级

等级配置释义控制台颜色
0 EMER 系统级紧急,比如磁盘出错,内存异常,网络不可用等 红色底
1ALRT系统级警告,比如数据库访问异常,配置文件出错等紫色
2CRIT系统级危险,比如权限出错,访问异常等蓝色
3EROR用户级错误红色
4WARN用户级警告黄色
5INFO用户级重要天蓝色
6DEBG用户级调试绿色
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")
02-14 03:19