发布于2026-07-01 阅读(0)
扫一扫,手机访问
在日常的 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,日志已经老老实实写进去了。小提醒:生产环境注意文件路径权限和日志轮转,否则日志文件可能撑爆磁盘。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8