xormplus / xorm

xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作
BSD 3-Clause "New" or "Revised" License
1.55k stars 222 forks source link

更新最新版本后,log无法再打印,命令行及文件输出都没有了 #45

Open ufwfqpdgv opened 5 years ago

ufwfqpdgv commented 5 years ago

已设置全输出(下面为outputlog值) 2019-09-10 14:23:34 debug utils/db.go:20 (bool) true

db.SetMapper(core.GonicMapper{})
if outputlog {
    db.ShowSQL(true)
} else {
    db.ShowSQL(false)
}
db.SetMaxIdleConns(cfg.Max_idle_conns)
db.SetMaxOpenConns(cfg.Max_conns)
db.SetConnMaxLifetime(time.Duration(cfg.Conn_max_lifetime) * time.Second) 

if outputlog {
    exist, err := pathExists(cfg.Log_path)
    if err != nil {
        log.Panic(err)
    }
    if !exist {
        err = os.Mkdir(cfg.Log_path, os.ModePerm)
        if err != nil {
            log.Panic(err)
        }
    }
    pathFileName := cfg.Log_path + cfg.Log_name
    file, err := os.Open(pathFileName)
    if err != nil && os.IsNotExist(err) {
        file, err = os.Create(pathFileName)
        if err != nil {
            log.Panic(err)
        }
    } else {
        file, err = os.OpenFile(pathFileName, os.O_WRONLY|os.O_APPEND, 0666)
        if err != nil {
            log.Panic(err)
        }
    }
    db.SetLogger(xorm.NewSimpleLogger(file))
}
xormplus commented 5 years ago

请问是执行的什么sql操作,sql执行处的代码能都提供一下,谢谢

ufwfqpdgv commented 5 years ago

各式都有,都没输出了,挺奇怪的。

cartoonPayUnlockedArr := make([]*CartoonPayUnlocked, 0)
err = ComicDB.Select("*").Table("cartoon_pay_unlocked").
    Where("human_type=?", sex).
    OrderBy("order_id asc").
    Find(&cartoonPayUnlockedArr)
if err != nil {
    log.Error(err)
    retCode = base.SamhResponseCode_ServerError
    return
}
if len(cartoonPayUnlockedArr) == 0 {
    retCode = base.SamhResponseCode_Data_NotExist
    return
}

filterRule := &FilterRule{}
exist, err = OperationDB.Select("*").Table("filter_rule").
    Where("filter_rule_id=? and status=?",
        12, base.SamhDataStatusCode_Normal).
    Get(filterRule)
if err != nil {
    log.Error(err.Error())
    retCode = base.SamhResponseCode_ServerError
    return
}
if !exist {
    retCode = base.SamhResponseCode_Data_NotExist
    return
}

for _, v := range cartoonPayUnlockedArr {
    comicStatus := &ComicStatus{ComicId: v.ComicId}
    cartoon := &Cartoon{}
    exist, err = ComicDB.Select("cartoon_name").Table("cartoon").
        Where("cartoon_id=?", v.ComicId).
        Get(cartoon)
xormplus commented 5 years ago

core这个库更新了没有?

ufwfqpdgv commented 5 years ago

在写的服务里面没法输出,然后在外面写个简单demo,就查询一下之类的是可以输出的,我再对比下服务近期换了啥库之类的导致了这个情况

ufwfqpdgv commented 5 years ago

找到原因了,外面可以输出,但打到文件不行 if outputlog { exist, err := pathExists(cfg.Log_path) if err != nil { log.Panic(err) } if !exist { err = os.Mkdir(cfg.Log_path, os.ModePerm) if err != nil { log.Panic(err) } } pathFileName := cfg.Log_path + cfg.Log_name file, err := os.Open(pathFileName) if err != nil && os.IsNotExist(err) { file, err = os.Create(pathFileName) if err != nil { log.Panic(err) } } else { file, err = os.OpenFile(pathFileName, os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Panic(err) } } db.SetLogger(xorm.NewSimpleLogger(file)) }

    db.SetLogger(xorm.NewSimpleLogger(file))这里一设置就无法打到对应的文件,文件已创建,有权限,所有相关库都更新到最新版本了
busywarrior commented 5 years ago

xrom日志是否支持传一个业务流水号?