教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go语言之日志,按文件大小日期轮询rotatelogs

go语言之日志,按文件大小日期轮询rotatelogs

发布时间:2021-05-29   编辑:jiaochengji.com
教程集为您提供go语言之日志,按文件大小日期轮询rotatelogs等资源,欢迎您收藏本站,我们将为您提供最新的go语言之日志,按文件大小日期轮询rotatelogs资源

“–————人与人之间还是直接点好——————”

**为go的log 增加轮询的功能**

 使日志自动 保存,清理  实现轮询的机制!使你的系统日志不会再涨大 导致资源匮乏 崩溃 ·

 包地址: https://github.com/gggwvg/logrotate
 具体参数信息如程序所示!
package main

import (
 "time"
 //“log”  原生日志
 "github.com/gggwvg/logrotate"
 "github.com/sirupsen/logrus"  //标准库日志
)

func main() {

 opts := []logrotate.Option{
  logrotate.File("/var/log/agent-mqtt-cli.log"),//创建日志目录
 }
 
 // opts = append(opts, logrotate.RotatePeriod(logrotate.PeriodDaily))//按天轮询
 opts = append(opts, logrotate.MaxArchives(2))//最大保存两个日志文件
 opts = append(opts, logrotate.RotateSize("5m"))//文件满5M就切割轮询
 logger, err := logrotate.NewLogger(opts...)//构造函数,创建实例
 if err != nil {
  panic(err)
 }
 
 //log.SetOutput(logger)  原生的log也是可以使用的
 logrus.SetOutput(logger) //将日志输出到rotatelogs
 logrus.Println("rotate by daily and file size 100m")
 
 //测试方法
 f := func() {
 
  for i := 0; i < 100; i   {
  
   logrus.WithFields(logrus.Fields{
    "animal": "walrus",
    "number": i,
   }).Info("A walrus appears")
   logrus.Error("xxxxxxxxxxxxxxx")
   logrus.Error("xxxxxxxxxxxxxxx2")
   logrus.Error("xxxxxxxxxxxxxxx3")
   time.Sleep(time.Second)
   
  }
 }
 
 for i := 0; i < 1000000; i   {
  go f()
  time.Sleep(time.Second)
 }
 f()
 time.Sleep(10 * time.Second)
 logger.Close()
}
到此这篇关于“go语言之日志,按文件大小日期轮询rotatelogs”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
go语言之日志,按日期轮询file-rotatelogs
go语言之日志,按文件大小日期轮询rotatelogs
GO语言-文件版日志系统
shell脚本:MySQL慢查询日志和错误日志按天轮询
golang 日志分析_每日一库之 logrus 日志使用教程
删除及设置linux日志笔记
go 杂谈一
2018年最全Go语言教程零基础入门到进阶实战视频
golang日志服务器_深扒GO日志 | (一)从Go语言的日志包说起
mysql优化之如何定位效率较低的SQL

[关闭]
~ ~