【Go】按日期分割日志文件

package main

import (
	"os"
	"time"

	rotatelogs "github.com/lestrrat-go/file-rotatelogs"

	"github.com/kataras/iris/v12"
	"github.com/kataras/iris/v12/middleware/logger"
	"github.com/kataras/iris/v12/middleware/recover"
)

func main() {

	/// iris
	app := iris.New()
	app.Use(recover.New())

	/// logger
	app.Logger().SetLevel("info")

	path := "api"
	writer, _ := rotatelogs.New(
		"./log/"+path+"-"+"%Y%m%d%H%M.log",
		rotatelogs.WithLinkName(path),
		rotatelogs.WithMaxAge(time.Duration(2)*time.Minute),        // 最长保留31天
		rotatelogs.WithRotationTime(time.Duration(30)*time.Second), // 每24h一个文件
	)

	app.Logger().SetOutput(writer)    //日志写入文件
	app.Logger().AddOutput(os.Stdout) //日志同时写入控制台,如果不想显示控制台可注释此语句

	//记录路由日志
	app.Use(logger.New(logger.Config{
		Status:     true,
		IP:         true,
		Method:     true,
		Path:       true,
		Query:      true,
		LogFunc:    nil,
		LogFuncCtx: nil,
		Skippers:   nil,
	}))

	go func(*iris.Application) {
		for i := 0; ; i++ {
			app.Logger().Infof("log : current i=%d", i)
			time.Sleep(10 * time.Millisecond)
		}
	}(app)

	/// run server
	app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值