如何自定义Golang日志输出到CentOS文件
作者:FreshDream
时间:2026-07-01
浏览:0
在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,日志已经老老实实写进去了。小提醒:生产环境注意文件路径权限和日志轮转,否则日志文件可能撑爆磁盘。
作者最新文章
vivo V80 曝光:10月发布,首推10倍人像变焦与蔡司夜景长焦
2026-09-08 17:00
PDF转Excel操作指南:极轻PDF在线工具使用步骤与结果核对
2026-09-02 19:02
Blender 3D动画制作入门:绑定、关键帧、灯光与渲染全流程
2026-09-02 11:10
PS教程:图层、选区、蒙版与调色核心操作
2026-09-02 10:12
iQOO Pro(12GB/128GB/5G全网通)忘了手机密码怎么办?
2026-08-25 15:47
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































