logger.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package sqlstore
  2. import (
  3. "fmt"
  4. glog "github.com/grafana/grafana/pkg/infra/log"
  5. "github.com/go-xorm/core"
  6. )
  7. type XormLogger struct {
  8. grafanaLog glog.Logger
  9. level glog.Lvl
  10. showSQL bool
  11. }
  12. func NewXormLogger(level glog.Lvl, grafanaLog glog.Logger) *XormLogger {
  13. return &XormLogger{
  14. grafanaLog: grafanaLog,
  15. level: level,
  16. showSQL: true,
  17. }
  18. }
  19. // Error implement core.ILogger
  20. func (s *XormLogger) Error(v ...interface{}) {
  21. if s.level <= glog.LvlError {
  22. s.grafanaLog.Error(fmt.Sprint(v...))
  23. }
  24. }
  25. // Errorf implement core.ILogger
  26. func (s *XormLogger) Errorf(format string, v ...interface{}) {
  27. if s.level <= glog.LvlError {
  28. s.grafanaLog.Error(fmt.Sprintf(format, v...))
  29. }
  30. }
  31. // Debug implement core.ILogger
  32. func (s *XormLogger) Debug(v ...interface{}) {
  33. if s.level <= glog.LvlDebug {
  34. s.grafanaLog.Debug(fmt.Sprint(v...))
  35. }
  36. }
  37. // Debugf implement core.ILogger
  38. func (s *XormLogger) Debugf(format string, v ...interface{}) {
  39. if s.level <= glog.LvlDebug {
  40. s.grafanaLog.Debug(fmt.Sprintf(format, v...))
  41. }
  42. }
  43. // Info implement core.ILogger
  44. func (s *XormLogger) Info(v ...interface{}) {
  45. if s.level <= glog.LvlInfo {
  46. s.grafanaLog.Info(fmt.Sprint(v...))
  47. }
  48. }
  49. // Infof implement core.ILogger
  50. func (s *XormLogger) Infof(format string, v ...interface{}) {
  51. if s.level <= glog.LvlInfo {
  52. s.grafanaLog.Info(fmt.Sprintf(format, v...))
  53. }
  54. }
  55. // Warn implement core.ILogger
  56. func (s *XormLogger) Warn(v ...interface{}) {
  57. if s.level <= glog.LvlWarn {
  58. s.grafanaLog.Warn(fmt.Sprint(v...))
  59. }
  60. }
  61. // Warnf implement core.ILogger
  62. func (s *XormLogger) Warnf(format string, v ...interface{}) {
  63. if s.level <= glog.LvlWarn {
  64. s.grafanaLog.Warn(fmt.Sprintf(format, v...))
  65. }
  66. }
  67. // Level implement core.ILogger
  68. func (s *XormLogger) Level() core.LogLevel {
  69. switch s.level {
  70. case glog.LvlError:
  71. return core.LOG_ERR
  72. case glog.LvlWarn:
  73. return core.LOG_WARNING
  74. case glog.LvlInfo:
  75. return core.LOG_INFO
  76. case glog.LvlDebug:
  77. return core.LOG_DEBUG
  78. default:
  79. return core.LOG_ERR
  80. }
  81. }
  82. // SetLevel implement core.ILogger
  83. func (s *XormLogger) SetLevel(l core.LogLevel) {
  84. }
  85. // ShowSQL implement core.ILogger
  86. func (s *XormLogger) ShowSQL(show ...bool) {
  87. s.grafanaLog.Error("ShowSQL", "show", "show")
  88. if len(show) == 0 {
  89. s.showSQL = true
  90. return
  91. }
  92. s.showSQL = show[0]
  93. }
  94. // IsShowSQL implement core.ILogger
  95. func (s *XormLogger) IsShowSQL() bool {
  96. return s.showSQL
  97. }