You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Go Fiber日志同时输出至标准输出与日志文件?

问题解答

Fiber内置的Logger中间件没有直接支持同时输出到多个目标的配置选项,你可以借助Go标准库的io.MultiWriter来实现需求,无需完全自定义Writer。

具体实现

Go标准库的io.MultiWriter能接收多个io.Writer实例,会将写入的内容同步转发给所有传入的Writer,刚好适配同时输出到文件和标准输出的场景。修改你的配置代码如下:

import (
    "io"
    "os"
    "github.com/gofiber/fiber/v2/middleware/logger"
)

// 假设logFile已提前完成打开初始化
app.Use(logger.New(logger.Config{
    Format:     "[LOG] ${time} ${status} - ${latency} ${method} ${path}\n",
    TimeFormat: "2006/01/2 15:04:05",
    Output:     io.MultiWriter(logFile, os.Stdout), // 同时输出到文件与标准输出
}))

原理说明

io.MultiWriter本身实现了io.Writer接口,当Logger中间件向这个Writer写入日志时,它会把相同的日志内容依次写入到你传入的logFile和os.Stdout中,完全满足你的需求。

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:22:04