Jquery中文网 www.jquerycn.cn
Jquery中文网 >  后端编程  >  Go语言  >  正文 go语言之日志,按文件大小日期轮询rotatelogs

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

发布时间:2021-05-29   编辑:www.jquerycn.cn
jquery中文网为您提供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语言之日志,按文件大小日期轮询rotatelogs
golang 日志分析_每日一库之 logrus 日志使用教程
shell脚本:MySQL慢查询日志和错误日志按天轮询
删除及设置linux日志笔记
为开发者准备的10款最好的jQuery日历插件
Go 开发关键技术指南 | 为什么你要选择 Go?(内含超全知识大图)
mysql优化之如何定位效率较低的SQL
Go 语言十年而立,Go2 蓄势待发
MYSQL启用日志,查看日志,利用Mysqlbinlog工具恢复MySQL数据库
mysql优化之定位效率较低的SQL

[关闭]