Gorm日志设置
gorm,日志,设置
·
浏览次数 : 358
小编点评
**LoggerGorm默认实现**
LoggerGorm提供了一个默认的 logger 实现,默认日志数据级别为 **warn**,并输出慢 SQL。
**配置**
默认情况下,日志数据级别为 **warn**,输出慢 SQL。可以使用 `Config` 设置日志数据级别和是否输出慢 SQL。
**自定义 LoggerGorm**
为了自定义 LoggerGorm,需要实现 `logger` 接口,并在 `Config` 中设置 `Logger`。
**接口 `logger`**
`logger` 接口包含以下方法:
* `LogMode(LogLevel)`:设置日志模式(例如 `Info`, `Error`)
* `Info(context.Context, string, ...interface{})`:输出信息日志
* `Warn(context.Context, string, ...interface{})`:输出警告日志
* `Error(context.Context, string, ...interface{})`:输出错误日志
* `Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)`:记录 SQL 查询并输出执行结果
**示例**
```go
import (
"log/logger"
)
// Configures the logger to use the default configuration.
cfg := logger.Config{}
// Sets the logger level to "info".
cfg.Logger = logger.New(
log.New(os.Stdout, "\\r\\", logger.LstdFlags),
Config{
SlowThreshold: 200 * time.Millisecond,
LogLevel: "info",
IgnoreRecordNotFoundError: false,
Colorful: true,
},
)
// Creates a LoggerGorm client.
client, err := gorm.Open(mysql.Open("test"), &gorm.Config{
Logger: &logger.Logger{},
})
```
**注意**
* `LoggerGorm` 允许自定义 Logger。
* `Config` 中的 `SlowThreshold` 和 `LogLevel` 属性是默认值。
* 可以根据需要修改 `Config`。
正文
Logger
Gorm提供了一个默认的logger实现,默认情况下日志数据级别为warn,同时输出慢SQL:
Default = New(log.New(os.Stdout, "\r\n", log.LstdFlags), Config{
SlowThreshold: 200 * time.Millisecond, // 慢sql阈值,200ms
LogLevel: Warn, // 日志输出级别
IgnoreRecordNotFoundError: false, // 不忽略记录不存在的错误
Colorful: true, // 彩色输出日志
})
log配置可以全局配置,也可以配置为会话级别:
// 配置全局
db, err := gorm.Open(mysql.Open("test"), &gorm.Config{
Logger: newLogger,
})
// 配置会话
tx := db.Session(&Session{Logger: newLogger})
日志级别
支持Silent、Error、Warn、Info。
自定义Logger
Gorm也支持自定义Logger,需要实现以下接口:
// Interface logger interface
type Interface interface {
LogMode(LogLevel) Interface
Info(context.Context, string, ...interface{})
Warn(context.Context, string, ...interface{})
Error(context.Context, string, ...interface{})
Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)
}
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意
与Gorm日志设置相似的内容: