2017-02-20 11:11:13 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2021-09-19 14:49:59 +03:00
package db
2017-02-20 11:11:13 +03:00
import (
"fmt"
2019-05-14 10:04:07 +03:00
"code.gitea.io/gitea/modules/log"
2020-03-22 18:12:55 +03:00
xormlog "xorm.io/xorm/log"
2017-02-20 11:11:13 +03:00
)
// XORMLogBridge a logger bridge from Logger to xorm
type XORMLogBridge struct {
showSQL bool
2020-10-31 08:36:46 +03:00
logger log . Logger
2017-02-20 11:11:13 +03:00
}
2019-05-14 10:04:07 +03:00
// NewXORMLogger inits a log bridge for xorm
2020-03-22 18:12:55 +03:00
func NewXORMLogger ( showSQL bool ) xormlog . Logger {
2019-05-14 10:04:07 +03:00
return & XORMLogBridge {
2019-04-02 10:48:31 +03:00
showSQL : showSQL ,
2019-05-14 10:04:07 +03:00
logger : log . GetLogger ( "xorm" ) ,
2017-02-22 14:44:51 +03:00
}
}
2021-04-05 10:41:22 +03:00
const stackLevel = 8
2019-04-02 10:48:31 +03:00
// Log a message with defined skip and at logging level
2019-05-14 10:04:07 +03:00
func ( l * XORMLogBridge ) Log ( skip int , level log . Level , format string , v ... interface { } ) error {
return l . logger . Log ( skip + 1 , level , format , v ... )
2017-02-20 11:11:13 +03:00
}
// Debug show debug log
func ( l * XORMLogBridge ) Debug ( v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . DEBUG , fmt . Sprint ( v ... ) )
2017-02-20 11:11:13 +03:00
}
// Debugf show debug log
func ( l * XORMLogBridge ) Debugf ( format string , v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . DEBUG , format , v ... )
2017-02-20 11:11:13 +03:00
}
// Error show error log
func ( l * XORMLogBridge ) Error ( v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . ERROR , fmt . Sprint ( v ... ) )
2017-02-20 11:11:13 +03:00
}
// Errorf show error log
func ( l * XORMLogBridge ) Errorf ( format string , v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . ERROR , format , v ... )
2017-02-20 11:11:13 +03:00
}
// Info show information level log
func ( l * XORMLogBridge ) Info ( v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . INFO , fmt . Sprint ( v ... ) )
2017-02-20 11:11:13 +03:00
}
// Infof show information level log
func ( l * XORMLogBridge ) Infof ( format string , v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . INFO , format , v ... )
2017-02-20 11:11:13 +03:00
}
2017-03-15 03:52:01 +03:00
// Warn show warning log
2017-02-20 11:11:13 +03:00
func ( l * XORMLogBridge ) Warn ( v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . WARN , fmt . Sprint ( v ... ) )
2017-02-20 11:11:13 +03:00
}
// Warnf show warnning log
func ( l * XORMLogBridge ) Warnf ( format string , v ... interface { } ) {
2021-04-05 10:41:22 +03:00
_ = l . Log ( stackLevel , log . WARN , format , v ... )
2017-02-20 11:11:13 +03:00
}
// Level get logger level
2020-03-22 18:12:55 +03:00
func ( l * XORMLogBridge ) Level ( ) xormlog . LogLevel {
2019-05-14 10:04:07 +03:00
switch l . logger . GetLevel ( ) {
case log . TRACE , log . DEBUG :
2020-03-22 18:12:55 +03:00
return xormlog . LOG_DEBUG
2019-05-14 10:04:07 +03:00
case log . INFO :
2020-03-22 18:12:55 +03:00
return xormlog . LOG_INFO
2019-05-14 10:04:07 +03:00
case log . WARN :
2020-03-22 18:12:55 +03:00
return xormlog . LOG_WARNING
2019-05-14 10:04:07 +03:00
case log . ERROR , log . CRITICAL :
2020-03-22 18:12:55 +03:00
return xormlog . LOG_ERR
2019-04-02 10:48:31 +03:00
}
2020-03-22 18:12:55 +03:00
return xormlog . LOG_OFF
2017-02-20 11:11:13 +03:00
}
2019-04-02 10:48:31 +03:00
// SetLevel set the logger level
2020-03-22 18:12:55 +03:00
func ( l * XORMLogBridge ) SetLevel ( lvl xormlog . LogLevel ) {
2017-02-20 11:11:13 +03:00
}
// ShowSQL set if record SQL
func ( l * XORMLogBridge ) ShowSQL ( show ... bool ) {
if len ( show ) > 0 {
l . showSQL = show [ 0 ]
} else {
l . showSQL = true
}
}
// IsShowSQL if record SQL
func ( l * XORMLogBridge ) IsShowSQL ( ) bool {
return l . showSQL
}