Golang logger包

我们开发go程序的过程中,发现记录程序日志已经不是fmt.print这么简单,我们想到的是打印输出能够明确指定当时运行时间、运行代码段,当然我们可以引入go官方自带包 import “log”,然后通过log.Printf、log.Println等方式输出,而且默认是日志输出时只带时间的,想要同时输出所运行代码段位置,还需要通过执行一下指定进行相关简单的设置

  1. log.SetFlags(log.LstdFlags | log.Lshortfile)

  2. log.SetPrefix(xxx)

logger支持自定义时间格式

logger支持不同的日志等级输出,能够有效提高日志输出性能和检索;

logger支持控制台+文件+网络的三种方式输出,并且可以任意组合。

logger支持控制台输出颜色区分;

logger支持文本输出的自定制;

logger支持网络日志传输,例如直连logstash发送。

go mod init

package main

import (
	"fmt"
	"github.com/wonderivan/logger"
)

func main() {
	fmt.Println("hello world")
	logger.SetLogger("log.json")
	logger.Trace("this is Trace")
	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")
}

go mod tidy

自动下载logger库

json文件内容

{
  "TimeFormat":"2006-01-02 15:04:05",
  "Console": {
    "level": "TRAC",
    "color": true
  },
  "File": {
    "filename": "app.log",
    "level": "TRAC",
    "daily": true,
    "maxlines": 1000000,
    "maxsize": 1,
    "maxdays": -1,
    "append": true,
    "permit": "0660"
  },
  "Conn": {
    "net":"tcp",
    "addr":"192.168.1.57:1024",
    "level": "Warn",
    "reconnect":true,
    "reconnectOnMsg":false
  }
}

go run main.go

此时在终端即可输出(如果是非windows终端,支持日志等级颜色区分):

 logger日志等级列表
等级    配置    释义    控制台颜色
0    EMER    系统级紧急,比如磁盘出错,内存异常,网络不可用等    红色底
1    ALRT    系统级警告,比如数据库访问异常,配置文件出错等    紫色
2    CRIT    系统级危险,比如权限出错,访问异常等    蓝色
3    EROR    用户级错误    红色
4    WARN    用户级警告    黄色
5    INFO    用户级重要    天蓝色
6    DEBG    用户级调试    绿色
7    TRAC    用户级基本输出,比如成员信息,结构体值等    绿色

json 参数说明

{
    "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,     // 发送完每条消息后是否断开网络
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值