如何自定义Golang日志输出到CentOS文件
在CentOS系统中,使用Golang标准库log和os包,通过os.OpenFile指定文件路径、以O_CREATE|O_WRONLY|O_APPEND标志及0666权限创建或打开文件,然后调用log.SetOutput将日志输出重定向至该文件,即可将应用程序日志持久化写入指定文件,实现日志文件记录功能,是一种常用且有效的方法。
在日常的 Golang 开发中,日志输出是个基本功,但要把日志定向写到 CentOS 系统的文件里,很多新手会卡在文件打开和权限设置上。其实操作起来很简单,只需要几个步骤就能搞定。

先把必要的包引进来——标准库 log 和 os 够用了:
import (
"log"
"os"
)
接下来,创建或打开一个日志文件。这里用的是 os.OpenFile,三个关键参数要记牢:os.O_CREATE 表示文件不存在就新建一个,os.O_WRONLY 表示只写模式,os.O_APPEND 表示日志内容追加到文件末尾,而不是覆盖。权限 0666 是常见设置,确保文件可读写。
logFile, err := os.OpenFile("/path/to/your/logfile.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening log file: %v", err)
}
defer logFile.Close()
文件准备好了,那就把日志输出目标指向它:
log.SetOutput(logFile)
之后,所有 log 包的函数都会写到这个文件里。举个例子:
log.Println("This is an info log.")
log.Printf("This is a formatted log with a number: %d", 42)
log.Fatal("This is a fatal log.")
注意 log.Fatal 会在输出日志后直接调用 os.Exit(1),程序就此结束。所以一般只在真正无法恢复的错误场景使用它。
最后把整个流程串成一个完整的例子:
package main
import (
"log"
"os"
)
func main() {
logFile, err := os.OpenFile("/path/to/your/logfile.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening log file: %v", err)
}
defer logFile.Close()
log.SetOutput(logFile)
log.Println("This is an info log.")
log.Printf("This is a formatted log with a number: %d", 42)
log.Fatal("This is a fatal log.")
}
运行这段代码后,你可以去指定路径下查看 logfile.log,日志已经老老实实写进去了。小提醒:生产环境注意文件路径权限和日志轮转,否则日志文件可能撑爆磁盘。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















