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))
}
【Go】按日期分割日志文件
于 2022-08-01 10:12:32 首次发布