我想将 gorm
日志存储在文件中。但是我找不到任何示例或文档。我怎样才能做到这一点?
最佳答案
您可以通过 *gorm.Config
值为 gorm.Open()
(它实现 gorm.Option
)您可以在其中指定自定义记录器。
您可以使用 logger.New()
创建记录器它允许您传递 logger.Writer
负责记录消息,例如可以记录到文件中。
请注意,logger.Writer
是由标准库的 log.Logger
实现的接口(interface)。 。您可以使用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
关于go - 将 gorm 日志存储在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69673048/