You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

log.go 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "fmt"
  7. "code.gitea.io/gitea/modules/log"
  8. xormlog "xorm.io/xorm/log"
  9. )
  10. // XORMLogBridge a logger bridge from Logger to xorm
  11. type XORMLogBridge struct {
  12. showSQL bool
  13. logger log.Logger
  14. }
  15. // NewXORMLogger inits a log bridge for xorm
  16. func NewXORMLogger(showSQL bool) xormlog.Logger {
  17. return &XORMLogBridge{
  18. showSQL: showSQL,
  19. logger: log.GetLogger("xorm"),
  20. }
  21. }
  22. const stackLevel = 8
  23. // Log a message with defined skip and at logging level
  24. func (l *XORMLogBridge) Log(skip int, level log.Level, format string, v ...interface{}) error {
  25. return l.logger.Log(skip+1, level, format, v...)
  26. }
  27. // Debug show debug log
  28. func (l *XORMLogBridge) Debug(v ...interface{}) {
  29. _ = l.Log(stackLevel, log.DEBUG, fmt.Sprint(v...))
  30. }
  31. // Debugf show debug log
  32. func (l *XORMLogBridge) Debugf(format string, v ...interface{}) {
  33. _ = l.Log(stackLevel, log.DEBUG, format, v...)
  34. }
  35. // Error show error log
  36. func (l *XORMLogBridge) Error(v ...interface{}) {
  37. _ = l.Log(stackLevel, log.ERROR, fmt.Sprint(v...))
  38. }
  39. // Errorf show error log
  40. func (l *XORMLogBridge) Errorf(format string, v ...interface{}) {
  41. _ = l.Log(stackLevel, log.ERROR, format, v...)
  42. }
  43. // Info show information level log
  44. func (l *XORMLogBridge) Info(v ...interface{}) {
  45. _ = l.Log(stackLevel, log.INFO, fmt.Sprint(v...))
  46. }
  47. // Infof show information level log
  48. func (l *XORMLogBridge) Infof(format string, v ...interface{}) {
  49. _ = l.Log(stackLevel, log.INFO, format, v...)
  50. }
  51. // Warn show warning log
  52. func (l *XORMLogBridge) Warn(v ...interface{}) {
  53. _ = l.Log(stackLevel, log.WARN, fmt.Sprint(v...))
  54. }
  55. // Warnf show warnning log
  56. func (l *XORMLogBridge) Warnf(format string, v ...interface{}) {
  57. _ = l.Log(stackLevel, log.WARN, format, v...)
  58. }
  59. // Level get logger level
  60. func (l *XORMLogBridge) Level() xormlog.LogLevel {
  61. switch l.logger.GetLevel() {
  62. case log.TRACE, log.DEBUG:
  63. return xormlog.LOG_DEBUG
  64. case log.INFO:
  65. return xormlog.LOG_INFO
  66. case log.WARN:
  67. return xormlog.LOG_WARNING
  68. case log.ERROR, log.CRITICAL:
  69. return xormlog.LOG_ERR
  70. }
  71. return xormlog.LOG_OFF
  72. }
  73. // SetLevel set the logger level
  74. func (l *XORMLogBridge) SetLevel(lvl xormlog.LogLevel) {
  75. }
  76. // ShowSQL set if record SQL
  77. func (l *XORMLogBridge) ShowSQL(show ...bool) {
  78. if len(show) > 0 {
  79. l.showSQL = show[0]
  80. } else {
  81. l.showSQL = true
  82. }
  83. }
  84. // IsShowSQL if record SQL
  85. func (l *XORMLogBridge) IsShowSQL() bool {
  86. return l.showSQL
  87. }