我正在使用自己开发的包开发Go应用程序,我决定使用zerolog日志。在初始化文件中,我初始化了一个零日志记录器以将日志保存到多个输出中,但是如何在所有开发的包中使用该设置?有一些最佳实践吗?是否可以使用该设置而无需每次都将记录器传递给包?
Logger在名为 或 的不同包中声明logger并使用记录器在所有包中引用它
package logger
import (
"github.com/rs/zerolog"
"os"
)
var Logger zerolog.Logger
func InitLog() {
consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout}
multi := zerolog.MultiLevelWriter(consoleWriter, os.Stdout)
Logger = zerolog.New(multi).With().Timestamp().Logger()
}
Run Code Online (Sandbox Code Playgroud)
在记录器包中声明Logger。启动项目时初始化 Logger 并按如下方式使用它。
package main
import "myapp/logger"
func main() {
logger.InitLog()
logger.Logger.Info().Msg("Hello, Main!")
}
Run Code Online (Sandbox Code Playgroud)