首页 > 其他分享 >golang的zap日志切割

golang的zap日志切割

时间:2023-05-09 22:25:00浏览次数:47  
标签:zapcore AddSync rotatelogs global golang time fileWriter 日志 zap

package internal

import (
"github.com/flipped-aurora/gin-vue-admin/server/global"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"go.uber.org/zap/zapcore"
"os"
"path"
"time"
)

var FileRotatelogs = new(fileRotatelogs)

type fileRotatelogs struct{}

// GetWriteSyncer 获取 zapcore.WriteSyncer
// Author [SliverHorn](https://github.com/SliverHorn)
func (r *fileRotatelogs) GetWriteSyncer(level string) (zapcore.WriteSyncer, error) {
fileWriter, err := rotatelogs.New(
path.Join(global.GVA_CONFIG.Zap.Director, "%Y-%m-%d", level+".log"),
rotatelogs.WithClock(rotatelogs.Local),
rotatelogs.WithMaxAge(time.Duration(global.GVA_CONFIG.Zap.MaxAge)*24*time.Hour), // 日志留存时间
rotatelogs.WithRotationTime(time.Hour*24),
)
if global.GVA_CONFIG.Zap.LogInConsole {
return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(fileWriter)), err
}
return zapcore.AddSync(fileWriter), err
}

标签:zapcore,AddSync,rotatelogs,global,golang,time,fileWriter,日志,zap
From: https://www.cnblogs.com/cheyunhua/p/17386480.html

相关文章

  • MySQL(二十二)其他数据库日志(二)bin log二进制日志
    MySQL(二十二)其他数据库日志(二)binlog二进制日志binlog二进制日志binlog即binarylog,二进制日志,也叫做变更日志它记录所有更新数据的DDL和DML语句,但是不包含没有修改数据的语句(如Select、show等),以事件的形式记录保存在二进制文件中可以用于主从服务器之间的数据同步......
  • MySQL(二十二)其他数据库日志(一)通用查询日志和错误日志
    MySQL(二十二)其他数据库日志(一)通用查询日志和错误日志1MySQL支持的日志1.1日志类型慢查询日志:记录执行时间超过long_query_time的所有查询,方便我们对查询进行优化通用查询日志:记录所有连接的起始和终止时间,以及连接发送给数据库的所有指令,对复原操作的实际场景、发现问题......
  • yolov5训练栏杆检测模型日志记录
    yolov5训练栏杆检测模型日志记录 (wind_2021)H:\PytorchProject\yolov5_train_xinru_2023050901>(wind_2021)H:\PytorchProject\yolov5_train_xinru_2023050901>(wind_2021)H:\PytorchProject\yolov5_train_xinru_2023050901>(wind_2021)H:\PytorchProject\yol......
  • 单例模型中懒汉模型,饿汉模型,枚举与日志等级
    1.单例模型将构造器私有化,控制创建对象的个数懒汉模型时间换空间符合单线程多线程不可以synchronized同步锁使单例可以一直用但效率不行单例模型一般使用在一台机器Asynchronized异步锁饿汉模型空间换时间可以解决安全利用JVM利用static只初始化一次......
  • MySQL笔记之文件和日志
    一、存储文件1、存放位置MySQL数据库会在data目录下,以数据库为名,为每一个数据库建立文件夹,用来存储数据库中的表文件数据。不同的数据库引擎,每个表的扩展名也不一样,例如:MyISAM用“.MYD”作为扩展名,Innodb用“.ibd”等。 2、FRM表结构信息文件无论是哪种存储引擎,创建表之......
  • linux定时备份日志文件脚本,重启jar简易脚本
     1.编写脚本文件saveLogs.sh (备份文件到指定位置重命名,然后情况文件继续写入)  cp/opt/zcgl/zcgl.log/opt/zcgl/logs/zcgl-`date+%Y%m%d`.log&  sleep2  >zcgl.log2. 定时脚本crontab 打开设置:crontab-e 输入内容:5923***sh/opt/zcgl/saveLogs.......
  • golang中xorm自动维护表结构自动导入数据的实现
    Xorm简介Go标准库提供的数据库接口database/sql比较底层,使用它来操作数据库非常繁琐,而且容易出错。因而社区开源了不少第三方库,有各式各样的ORM(ObjectRelationalMapping,对象关系映射库),如gorm和xorm。其中xorm是一个简单但强大的ORM库,使用它可以大大简化我们的数据库操作,笔......
  • MySQL(十九)MySQL事务日志(一)RedoLog
    MySQL(十九)MySQL事务日志(一)RedoLog​ 事务的四种特性:原子性、一致性、持久性和隔离性都是基于什么机制实现的?事务的隔离性由锁机制实现而事务的原子性、一致性和持久性则由事务的redo和undo日志来实现的redolog是重做日志,提供再写入操作,恢复提交事务修改的页的操作......
  • MySQL(十九)MySQL事务日志(二)UndoLog
    MySQL(十九)MySQL事务日志(二)UndoLog1undo日志概述​ redolog是事务持久性的保障,而undolog则是事务原子性和一致性的保证,如上图,在事务中更新数据的前置操作其实是需要将数据写入到undolog方便回滚。​ 事务需要保证原子性,也就是事务中的操作要么全部完成、要么全部不做。......
  • Golang GMP原理(2)
    GMP调度场景场景1P拥有G1,M1获取P后开始运行G1,G1使用gofunc创建G2,为了局部性G2优先加入到P1的本地队列场景2G1运行完成后(函数:goexit),M上运行的goroutine切换为G0,G0负责调度时协程的切换(函数:schedule)。从P的本地队列取G2,从G0切换到G2,并开始运行G2(函数:execute)。实现了线程......