55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package logger
 | |
| 
 | |
| import (
 | |
| 	"os"
 | |
| 	"time"
 | |
| 
 | |
| 	"management/internal/pkg/config"
 | |
| 
 | |
| 	"github.com/natefinch/lumberjack"
 | |
| 	"github.com/rs/zerolog"
 | |
| 	"github.com/rs/zerolog/log"
 | |
| )
 | |
| 
 | |
| func New(prod bool) {
 | |
| 	zerolog.SetGlobalLevel(zerolog.InfoLevel)
 | |
| 	logRotate := &lumberjack.Logger{
 | |
| 		Filename:   "./log/run.log", // 日志文件的位置
 | |
| 		MaxSize:    10,              // 在进行切割之前,日志文件的最大大小(以MB为单位)
 | |
| 		MaxBackups: 100,             // 保留旧文件的最大个数
 | |
| 		MaxAge:     30,              // 保留旧文件的最大天数
 | |
| 		Compress:   true,
 | |
| 	}
 | |
| 	zerolog.TimeFieldFormat = time.DateTime
 | |
| 	log.Logger = log.With().Caller().Logger()
 | |
| 
 | |
| 	if prod {
 | |
| 		log.Logger = log.Output(logRotate)
 | |
| 	} else {
 | |
| 		consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.DateTime}
 | |
| 		multi := zerolog.MultiLevelWriter(consoleWriter, logRotate)
 | |
| 		log.Logger = log.Output(multi)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func Init() {
 | |
| 	zerolog.SetGlobalLevel(zerolog.InfoLevel)
 | |
| 	logRotate := &lumberjack.Logger{
 | |
| 		Filename:   "./log/run.log", // 日志文件的位置
 | |
| 		MaxSize:    10,              // 在进行切割之前,日志文件的最大大小(以MB为单位)
 | |
| 		MaxBackups: 100,             // 保留旧文件的最大个数
 | |
| 		MaxAge:     30,              // 保留旧文件的最大天数
 | |
| 		Compress:   true,
 | |
| 	}
 | |
| 	zerolog.TimeFieldFormat = time.DateTime
 | |
| 	log.Logger = log.With().Caller().Logger()
 | |
| 
 | |
| 	if config.File.App.Prod {
 | |
| 		log.Logger = log.Output(logRotate)
 | |
| 	} else {
 | |
| 		consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.DateTime}
 | |
| 		multi := zerolog.MultiLevelWriter(consoleWriter, logRotate)
 | |
| 		log.Logger = log.Output(multi)
 | |
| 	}
 | |
| }
 |