@ -6,6 +6,7 @@ package db
import (
import (
"fmt"
"fmt"
"sync/atomic"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/log"
@ -14,14 +15,18 @@ import (
// XORMLogBridge a logger bridge from Logger to xorm
// XORMLogBridge a logger bridge from Logger to xorm
type XORMLogBridge struct {
type XORMLogBridge struct {
showSQL bool
showSQLint * int32
logger log . Logger
logger log . Logger
}
}
// NewXORMLogger inits a log bridge for xorm
// NewXORMLogger inits a log bridge for xorm
func NewXORMLogger ( showSQL bool ) xormlog . Logger {
func NewXORMLogger ( showSQL bool ) xormlog . Logger {
showSQLint := int32 ( 0 )
if showSQL {
showSQLint = 1
}
return & XORMLogBridge {
return & XORMLogBridge {
showSQL : showSQL ,
showSQLint : & showSQLint ,
logger : log . GetLogger ( "xorm" ) ,
logger : log . GetLogger ( "xorm" ) ,
}
}
}
}
@ -94,14 +99,16 @@ func (l *XORMLogBridge) SetLevel(lvl xormlog.LogLevel) {
// ShowSQL set if record SQL
// ShowSQL set if record SQL
func ( l * XORMLogBridge ) ShowSQL ( show ... bool ) {
func ( l * XORMLogBridge ) ShowSQL ( show ... bool ) {
if len ( show ) > 0 {
showSQL := int32 ( 1 )
l . showSQL = show [ 0 ]
if len ( show ) > 0 && ! show [ 0 ] {
} else {
showSQL = 0
l . showSQL = true
}
}
atomic . StoreInt32 ( l . showSQLint , showSQL )
}
}
// IsShowSQL if record SQL
// IsShowSQL if record SQL
func ( l * XORMLogBridge ) IsShowSQL ( ) bool {
func ( l * XORMLogBridge ) IsShowSQL ( ) bool {
return l . showSQL
showSQL := atomic . LoadInt32 ( l . showSQLint )
return showSQL == 1
}
}