107 lines · 2.4 KB · Go
RawDownload
// Copyright 2017 The Gitea Authors. All rights reserved.// SPDX-License-Identifier: MIT package db import (	"fmt"	"sync/atomic" 	"forgejo.org/modules/log" 	xormlog "xorm.io/xorm/log") // XORMLogBridge a logger bridge from Logger to xormtype XORMLogBridge struct {	showSQL atomic.Bool	logger  log.Logger} // NewXORMLogger inits a log bridge for xormfunc NewXORMLogger(showSQL bool) xormlog.Logger {	l := &XORMLogBridge{logger: log.GetLogger("xorm")}	l.showSQL.Store(showSQL)	return l} const stackLevel = 8 // Log a message with defined skip and at logging levelfunc (l *XORMLogBridge) Log(skip int, level log.Level, format string, v ...any) {	l.logger.Log(skip+1, level, format, v...)} // Debug show debug logfunc (l *XORMLogBridge) Debug(v ...any) {	l.Log(stackLevel, log.DEBUG, "%s", fmt.Sprint(v...))} // Debugf show debug logfunc (l *XORMLogBridge) Debugf(format string, v ...any) {	l.Log(stackLevel, log.DEBUG, format, v...)} // Error show error logfunc (l *XORMLogBridge) Error(v ...any) {	l.Log(stackLevel, log.ERROR, "%s", fmt.Sprint(v...))} // Errorf show error logfunc (l *XORMLogBridge) Errorf(format string, v ...any) {	l.Log(stackLevel, log.ERROR, format, v...)} // Info show information level logfunc (l *XORMLogBridge) Info(v ...any) {	l.Log(stackLevel, log.INFO, "%s", fmt.Sprint(v...))} // Infof show information level logfunc (l *XORMLogBridge) Infof(format string, v ...any) {	l.Log(stackLevel, log.INFO, format, v...)} // Warn show warning logfunc (l *XORMLogBridge) Warn(v ...any) {	l.Log(stackLevel, log.WARN, "%s", fmt.Sprint(v...))} // Warnf show warning logfunc (l *XORMLogBridge) Warnf(format string, v ...any) {	l.Log(stackLevel, log.WARN, format, v...)} // Level get logger levelfunc (l *XORMLogBridge) Level() xormlog.LogLevel {	switch l.logger.GetLevel() {	case log.TRACE, log.DEBUG:		return xormlog.LOG_DEBUG	case log.INFO:		return xormlog.LOG_INFO	case log.WARN:		return xormlog.LOG_WARNING	case log.ERROR:		return xormlog.LOG_ERR	case log.NONE:		return xormlog.LOG_OFF	}	return xormlog.LOG_UNKNOWN} // SetLevel set the logger levelfunc (l *XORMLogBridge) SetLevel(lvl xormlog.LogLevel) {} // ShowSQL set if record SQLfunc (l *XORMLogBridge) ShowSQL(show ...bool) {	if len(show) == 0 {		show = []bool{true}	}	l.showSQL.Store(show[0])} // IsShowSQL if record SQLfunc (l *XORMLogBridge) IsShowSQL() bool {	return l.showSQL.Load()}