logger.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package logger
  2. import (
  3. "os"
  4. "sync"
  5. "github.com/op/go-logging"
  6. )
  7. var (
  8. logger *logging.Logger
  9. mu sync.Mutex
  10. )
  11. func init() {
  12. InitLogger(logging.INFO)
  13. }
  14. func InitLogger(level logging.Level) {
  15. mu.Lock()
  16. defer mu.Unlock()
  17. if logger != nil {
  18. return
  19. }
  20. format := logging.MustStringFormatter(
  21. `%{time:2006/01/02 15:04:05} %{level} - %{message}`,
  22. )
  23. newLogger := logging.MustGetLogger("x-ui")
  24. backend := logging.NewLogBackend(os.Stderr, "", 0)
  25. backendFormatter := logging.NewBackendFormatter(backend, format)
  26. backendLeveled := logging.AddModuleLevel(backendFormatter)
  27. backendLeveled.SetLevel(level, "")
  28. newLogger.SetBackend(logging.MultiLogger(backendLeveled))
  29. logger = newLogger
  30. }
  31. func Debug(args ...interface{}) {
  32. if logger != nil {
  33. logger.Debug(args...)
  34. }
  35. }
  36. func Debugf(format string, args ...interface{}) {
  37. if logger != nil {
  38. logger.Debugf(format, args...)
  39. }
  40. }
  41. func Info(args ...interface{}) {
  42. if logger != nil {
  43. logger.Info(args...)
  44. }
  45. }
  46. func Infof(format string, args ...interface{}) {
  47. if logger != nil {
  48. logger.Infof(format, args...)
  49. }
  50. }
  51. func Warning(args ...interface{}) {
  52. if logger != nil {
  53. logger.Warning(args...)
  54. }
  55. }
  56. func Warningf(format string, args ...interface{}) {
  57. if logger != nil {
  58. logger.Warningf(format, args...)
  59. }
  60. }
  61. func Error(args ...interface{}) {
  62. if logger != nil {
  63. logger.Error(args...)
  64. }
  65. }
  66. func Errorf(format string, args ...interface{}) {
  67. if logger != nil {
  68. logger.Errorf(format, args...)
  69. }
  70. }