golang debug 配置_新鲜出炉的golang日志库

新鲜出炉的golang日志记录库

https://github.com/zxysilent/logs​github.com

功能

  • 日志等级 DEBUG、INFO、WARN、ERROR、FATAL
  • 每天切分日志文件
  • 保留180天日志记录
  • 直接输出到文件
  • 单文件大小限制 256MB
  • 可配置输出等级
  • 可配置调用信息
  • 可配置同时输出到控制台
  • 直接使用、维护默认实例
  • 可新建日志实例 NewLogger("logs/app.log")

日志结构

// logger
type FishLogger struct {
    cons     bool          // 标准输出  默认 false
    callInfo bool          // 是否输出行号和文件名 默认 false
    maxAge   int           // 最大保留天数
    maxSize  int64         // 单个日志最大容量 默认 256MB
    size     int64         // 累计大小
    lpath    string        // 文件目录 完整路径 lpath=lname+lsuffix
    lname    string        // 文件名 无后缀
    lsuffix  string        // 文件后缀名 默认 .log
    created  string        // 文件创建日期
    level    logLevel      // 输出的日志等级
    list     *buffer       // 缓存
    listLock sync.Mutex    // 链表 
    lock     sync.Mutex    // logger 
    writer   *bufio.Writer // 缓存io 缓存到文件
    file     *os.File      // 日志文件
}

使用示例

package main

import "github.com/zxysilent/logs"

func main() {
    // 使用默认实例
    // 退出时调用,确保日志写入文件中
    defer logs.Flush()
    // 设置日志输出等级
    // 开发环境下设置输出等级为DEBUG,线上环境设置为INFO
    logs.SetLevel(logs.DEBUG)
    // 设置输出调用信息
    logs.SetCallInfo(true)
    // 设置同时显示到控制台
    // 默认只输出到文件
    logs.SetConsole(true)
    logs.Debug("Debug Logger")
    logs.Debugf("Debugf %s", "Logger")

    logs.Info("Info Logger")
    logs.Infof("Infof %s", "Logger")

    logs.Warn("Warn Logger")
    logs.Warnf("Warnf %s", "Logger")

    logs.Error("Error Logger")
    logs.Errorf("Errorf %s", "Logger")

    //logs.Fatal("Fatal Logger")
    //logs.Fatalf("Fatalf %s", "Logger")

    // ------------------------- 使用自定义实例
    // 适用于不同业务模块
    applog := logs.NewLogger("logs/xxx.log")
    defer applog.Flush()
    // 设置日志输出等级
    // 开发环境下设置输出等级为DEBUG,线上环境设置为INFO
    applog.SetLevel(logs.DEBUG)
    // 设置输出调用信息
    applog.SetCallInfo(true)
    // 设置同时显示到控制台
    // 默认只输出到文件
    applog.SetConsole(true)
    applog.Debug("Debug Logger")
    applog.Debugf("Debugf %s", "Logger")

    applog.Info("Info Logger")
    applog.Infof("Infof %s", "Logger")

    applog.Warn("Warn Logger")
    applog.Warnf("Warnf %s", "Logger")

    applog.Error("Error Logger")
    applog.Errorf("Errorf %s", "Logger")

    //applog.Fatal("Fatal Logger")
    //applog.Fatalf("Fatalf %s", "Logger")
}

性能

直接保存文件
goos: windows
goarch: amd64
pkg: github.com/zxysilent/logs
BenchmarkLogger
BenchmarkLogger-8        3783954           313 ns/op           0 B/op          0 allocs/op
PASS
ok      github.com/zxysilent/logs   1.542s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值