发布于2026-07-31 阅读(0)
扫一扫,手机访问
在Debian系统上折腾Golang日志输出,其实路子挺多的。标准库自带的“log”就能干活,但如果你追求更灵活的控制,像“logrus”或“zap”这类第三方库也相当成熟。下面就直接上干货,看看怎么把日志输出玩出花来。

标准库“log”的好处是零依赖,开箱即用。要自定义输出,主要就是三步:打开或创建日志文件、设置输出目标、调整前缀和标志位。看代码:
package main
import (
"log"
"os"
)
func main() {
// 创建一个新的日志文件
logFile, err := os.OpenFile("custom.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatal(err)
}
defer logFile.Close()
// 设置日志输出到文件
log.SetOutput(logFile)
// 设置日志前缀
log.SetPrefix("INFO: ")
// 设置日志标志:日期、时间、短文件路径
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
// 写入日志
log.Println("This is a custom log message.")
}
这样一来,日志就会乖乖跑到custom.log里,并且带上清晰的时间戳和文件名。够简单吧?
如果你需要更丰富的日志级别、字段格式化,或者想输出JSON格式,“logrus”是个经典选择。先安装:
go get github.com/sirupsen/logrus
然后上代码:
package main
import (
"os"
"github.com/sirupsen/logrus"
)
func main() {
// 创建日志文件
logFile, err := os.OpenFile("custom.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Fatal(err)
}
defer logFile.Close()
// 设置输出到文件
logrus.SetOutput(logFile)
// 设置日志级别
logrus.SetLevel(logrus.InfoLevel)
// 设置文本格式,并显示完整时间戳
logrus.SetFormatter(&logrus.TextFormatter{
FullTimestamp: true,
})
// 写入日志
logrus.Info("This is a custom log message.")
}
注意,logrus的SetLevel可以直接过滤掉低于指定级别的日志,省去不少手动判断。
如果对性能有苛刻要求,比如高并发场景下日志不能拖后腿,那“zap”几乎是标配。安装它:
go get -u go.uber.org/zap
使用示例:
package main
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"os"
)
func main() {
// 创建日志文件
logFile, err := os.OpenFile("custom.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
defer logFile.Close()
// 配置核心:JSON编码器 + 文件输出 + Info级别
core := zapcore.NewCore(
zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()),
zapcore.AddSync(logFile),
zap.InfoLevel,
)
// 创建logger
logger := zap.New(core)
// 写入日志
logger.Info("This is a custom log message.")
}
zap的API设计偏底层,但换来的是极低的分配开销和超高的吞吐量。当然,如果你觉得直接构建Core太麻烦,也可以直接用zap.NewProduction()快速上手。
以上三种方法覆盖了从简单到高性能的典型需求。你可以根据项目规模、性能要求、团队习惯灵活选择。说到底,日志这东西,够用、好用、看得清,就是好日志。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8