/**
* @author:David Ma
* @date:2021-02-01
*/
package mylog
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"os"
)
/**
* 获取日志对象
* filePath 日志文件路径
* level 日志级别
* maxSize 每个日志文件保存的最大尺寸 单位:M
* maxBackups 日志文件最多保存多少个备份
* maxAge 文件最多保存多少天
* compress 是否压缩
* serviceName 服务名
*/
func NewLogger(filePath string, level zapcore.Level, maxSize int,maxBackups int, maxAge int, compress bool, serviceName string) *zap.Logger{
core := newCore(filePath, level, maxSize, maxBackups, maxAge, compress)
//开启文件和行号
caller := zap.AddCaller()
//开启开发者模式,也就是stacktrace
development := zap.Development()
//往log中追加额外的信息(要求是<k,v>类型)
opts := zap.Fields(zap.String("service",serviceName))
logger := zap.New(core, caller, development, opts)
return logger
}
/**
* 构建zapcore
*/
func newCore(filePath string, level zapcore.Level, maxSize int,maxBackups int, maxAge
集成gin 、zap和lumberjack
最新推荐文章于 2024-08-18 10:26:39 发布
本文介绍了如何在Go应用中整合gin框架、zap日志库以及lumberjack日志切割工具,详细阐述了配置和使用过程,帮助开发者实现高效、规范的日志管理和web服务构建。
摘要由CSDN通过智能技术生成