logger.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package sqlstore
  2. import (
  3. "fmt"
  4. glog "github.com/grafana/grafana/pkg/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) Err(v ...interface{}) error {
  21. if s.level <= glog.LvlError {
  22. s.grafanaLog.Error(fmt.Sprint(v...))
  23. }
  24. return nil
  25. }
  26. // Errorf implement core.ILogger
  27. func (s *XormLogger) Errf(format string, v ...interface{}) error {
  28. if s.level <= glog.LvlError {
  29. s.grafanaLog.Error(fmt.Sprintf(format, v...))
  30. }
  31. return nil
  32. }
  33. // Debug implement core.ILogger
  34. func (s *XormLogger) Debug(v ...interface{}) error {
  35. if s.level <= glog.LvlDebug {
  36. s.grafanaLog.Debug(fmt.Sprint(v...))
  37. }
  38. return nil
  39. }
  40. // Debugf implement core.ILogger
  41. func (s *XormLogger) Debugf(format string, v ...interface{}) error {
  42. if s.level <= glog.LvlDebug {
  43. s.grafanaLog.Debug(fmt.Sprintf(format, v...))
  44. }
  45. return nil
  46. }
  47. // Info implement core.ILogger
  48. func (s *XormLogger) Info(v ...interface{}) error {
  49. if s.level <= glog.LvlInfo {
  50. s.grafanaLog.Info(fmt.Sprint(v...))
  51. }
  52. return nil
  53. }
  54. // Infof implement core.ILogger
  55. func (s *XormLogger) Infof(format string, v ...interface{}) error {
  56. if s.level <= glog.LvlInfo {
  57. s.grafanaLog.Info(fmt.Sprintf(format, v...))
  58. }
  59. return nil
  60. }
  61. // Warn implement core.ILogger
  62. func (s *XormLogger) Warning(v ...interface{}) error {
  63. if s.level <= glog.LvlWarn {
  64. s.grafanaLog.Warn(fmt.Sprint(v...))
  65. }
  66. return nil
  67. }
  68. // Warnf implement core.ILogger
  69. func (s *XormLogger) Warningf(format string, v ...interface{}) error {
  70. if s.level <= glog.LvlWarn {
  71. s.grafanaLog.Warn(fmt.Sprintf(format, v...))
  72. }
  73. return nil
  74. }
  75. // Level implement core.ILogger
  76. func (s *XormLogger) Level() core.LogLevel {
  77. switch s.level {
  78. case glog.LvlError:
  79. return core.LOG_ERR
  80. case glog.LvlWarn:
  81. return core.LOG_WARNING
  82. case glog.LvlInfo:
  83. return core.LOG_INFO
  84. case glog.LvlDebug:
  85. return core.LOG_DEBUG
  86. default:
  87. return core.LOG_ERR
  88. }
  89. }
  90. // SetLevel implement core.ILogger
  91. func (s *XormLogger) SetLevel(l core.LogLevel) error {
  92. return nil
  93. }
  94. // ShowSQL implement core.ILogger
  95. func (s *XormLogger) ShowSQL(show ...bool) {
  96. s.grafanaLog.Error("ShowSQL", "show", "show")
  97. if len(show) == 0 {
  98. s.showSQL = true
  99. return
  100. }
  101. s.showSQL = show[0]
  102. }
  103. // IsShowSQL implement core.ILogger
  104. func (s *XormLogger) IsShowSQL() bool {
  105. return s.showSQL
  106. }