gpt4 book ai didi

go - golang中如何将日志写入多个日志文件?

转载 作者:IT王子 更新时间:2023-10-29 02:07:38 25 4
gpt4 key购买 nike

我正在编写一个应用程序,我需要在其中将日志记录在两个不同的文件中。例如 weblogs.go 和 debuglogs.go。我尝试使用 log4go 但我的要求是我需要在主文件中创建记录器并且可以在子目录中访问,因为主要的解码和记录是在子文件中完成的。有人可以帮忙吗?

最佳答案

这是一种方法,使用标准的 log 包:

package main

import (
"io"
"log"
"os"
)

func main() {
f1, err := os.Create("/tmp/file1")
if err != nil {
panic(err)
}
defer f1.Close()

f2, err := os.Create("/tmp/file2")
if err != nil {
panic(err)
}
defer f2.Close()

w := io.MultiWriter(os.Stdout, f1, f2)
logger := log.New(w, "logger", log.LstdFlags)

myfunc(logger)
}

func myfunc(logger *log.Logger) {
logger.Print("Hello, log file!!")
}

注意事项:

  1. io.MultiWriter 用于将多个编写器组合在一起。在这里,它创建了一个编写器 w - 对 w 的写入将转到 os.Stdout 以及两个文件
  2. log.New 让我们用自定义编写器创建一个新的 log.Logger 对象
  3. log.Logger 对象可以传递给函数并由它们用来记录事情

关于go - golang中如何将日志写入多个日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54820380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com