登录
首页 >  Golang >  Go问答

将 gorm 日志输出到文件中保存

来源:stackoverflow

时间:2024-02-13 11:06:26 274浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《将 gorm 日志输出到文件中保存》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我想将 gorm 日志存储在文件中。但是我找不到任何示例或文档。我怎样才能做到这一点?


正确答案


您可以将 *gorm.Config 值传递给 gorm.Open()(它实现 gorm.Option),您可以在其中指定自定义记录器。

您可以使用 logger.New() 创建记录器,它允许您传递负责记录消息的 logger.Writer,例如,它可能会记录到文件中。

请注意,logger.writer 是由标准库 log.Logger 实现的接口。您可以使用 log.New() 创建指向文件的标准库记录器。

将各个部分组合在一起:

file, err := os.create("gorm-log.txt")
if err != nil {
    // handle error
    panic(err)
}
// make sure file is closed before your app shuts down.

filelogger := logger.new(file, "", log.lstdflags)

db, err := gorm.open(sqlite.open("test.db"), &gorm.config{
  logger: filelogger,
})

上面的示例将用 filelogger 替换默认记录器,它仅记录到文件。如果您想同时记录到控制台(标准输出)和文件,您可以使用 io.MultiWriter() 创建一个 io.Writer 来写入标准输出和文件:

file, err := os.Create("gorm-log.txt")
if err != nil {
    // Handle error
    panic(err)
}
// Make sure file is closed before your app shuts down.

multiOutput := io.MultiWriter(os.Stdout, file)

multiLogger := logger.New(multiOutput, "", log.LstdFlags)

db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{
  Logger: multiLogger,
})

在此处了解有关 gorm 日志记录的更多信息:https://gorm.io/docs/logger.html

到这里,我们也就讲完了《将 gorm 日志输出到文件中保存》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>