【发布时间】:2012-11-09 13:44:31
【问题描述】:
在 Go 中执行登录的惯用方式是什么?
【问题讨论】:
-
有很多第三方库提供了更多功能完整的实现。例如,在标准库中,我错过了自定义格式和日志级别(调试、信息、...)的便捷选项,最终我实现了自己的库 - go-log。看看吧。
在 Go 中执行登录的惯用方式是什么?
【问题讨论】:
创建一个声明全局变量logger的文件。然后,使用 Go 的惯用 init() 函数在启动时初始化变量。
logger.go:
package xxx
import (
"log"
"os"
)
var logger *log.Logger
func init() {
logger = log.New(os.Stderr, "xxx: ", log.Ldate | log.Ltime | log.Lshortfile)
}
example.go:
func test() {
logger.Println("Logged")
}
此方法的好处是您可以使用可以从单个文件配置的单个记录器实现。
编辑: ThomasKappler 指出,如果您只使用单个全局记录器,则可以使用日志包的内置记录器并使用 SetFlags 对其进行配置。唯一的区别是您必须更明确并导入日志包。
【讨论】: