go : gin + lumberjack 输出日志文件

func init() {
//标准日志库
	logFile, err := os.OpenFile("logs/goserver.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("open log file failed,err:",err)
		return
	}

	//lumberjack日志滚动记录器
	//lumberjack是一个日志滚动记录器。可以把日志文件根据大小、日期等分割。一般情况下,
	//lumberjack配合其他日志库,实现日志的滚动(rolling)记录。

	log.SetOutput(
		&lumberjack.Logger{
		Filename: "logs/goserver.log",		//日志文件得位置
		MaxSize: 1,						//切割之前日志文件得大小(单位:MB)
		MaxBackups: 3,						//保留旧文件得最大个数
		MaxAge: 5,							//保留旧文件得最大天数
		Compress: true,						//是否压缩旧文件
	})
	//设置标准记录器的输出标志 :完整文件名和行号   微秒分辨率    本地时区中的日期
	log.SetFlags(log.Llongfile | log.Ltime |log.Ldate)
	//同时写文件和屏幕
	multiWriter := io.MultiWriter(os.Stdout, logFile)
	log.SetOutput(multiWriter)

	gin.DefaultWriter = multiWriter
	}
//简单实现
package main

import (
    "io"
    "os"

    "github.com/gin-gonic/gin"
)

func main() {

    // Logging to a file.
    f, _ := os.Create("gin.log")
    gin.DefaultWriter = io.MultiWriter(f)

    // Use the following code if you need to write the logs to file and console at the same time.
    // gin.DefaultWriter = io.MultiWriter(f, os.Stdout)

    router := gin.Default()
    router.GET("/ping", func(c *gin.Context) {
        c.String(200, "pong")
    })

    router.Run(":8080")
}

你可能感兴趣的:(go编程,前端技巧,golang,gin,开发语言)