mod_log.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package core
  2. import "fmt"
  3. var _ IModuleLogger = (*ModuleLogger)(nil)
  4. var _ IModuleLogLevelLimiter = (*ModuleLogger)(nil)
  5. type ModuleLogger struct {
  6. module string
  7. levelLimit uint8
  8. baseLogger ILogger
  9. }
  10. func (ml *ModuleLogger) LimitLogLevel(level uint8) {
  11. if level > 4 {
  12. ml.levelLimit = 0
  13. return
  14. }
  15. ml.levelLimit = level
  16. }
  17. func (ml *ModuleLogger) GetModuleName() string {
  18. return ml.module
  19. }
  20. func (ml *ModuleLogger) GetSubLog(suffix string) IModuleLogger {
  21. prefix := ml.module
  22. name := fmt.Sprintf("%s/%s", prefix, suffix)
  23. return ml.baseLogger.GetModuleLogger(name)
  24. }
  25. func NewModuleLogger(module string, base ILogger) *ModuleLogger {
  26. return &ModuleLogger{
  27. module: module,
  28. baseLogger: base,
  29. }
  30. }
  31. func (ml *ModuleLogger) Fatal(d ...interface{}) {
  32. ml.baseLogger.BLFatal(ml.module, d...)
  33. }
  34. func (ml *ModuleLogger) FatalF(format string, d ...interface{}) {
  35. ml.baseLogger.BLFatalF(ml.module, format, d...)
  36. }
  37. func (ml *ModuleLogger) FatalC(data map[string]string) {
  38. ml.baseLogger.BLFatalC(ml.module, data)
  39. }
  40. func (ml *ModuleLogger) Panic(d ...interface{}) {
  41. ml.baseLogger.BLPanic(ml.module, d...)
  42. }
  43. func (ml *ModuleLogger) PanicF(format string, d ...interface{}) {
  44. ml.baseLogger.BLPanicF(ml.module, format, d...)
  45. }
  46. func (ml *ModuleLogger) PanicC(data map[string]string) {
  47. ml.baseLogger.BLPanicC(ml.module, data)
  48. }
  49. func (ml *ModuleLogger) Error(d ...interface{}) {
  50. ml.baseLogger.BLError(ml.module, d...)
  51. }
  52. func (ml *ModuleLogger) ErrorF(format string, d ...interface{}) {
  53. ml.baseLogger.BLErrorF(ml.module, format, d...)
  54. }
  55. func (ml *ModuleLogger) ErrorC(data map[string]string) {
  56. ml.baseLogger.BLErrorC(ml.module, data)
  57. }
  58. func (ml *ModuleLogger) Warn(d ...interface{}) {
  59. if ml.levelLimit > 3 {
  60. return
  61. }
  62. ml.baseLogger.BLWarn(ml.module, d...)
  63. }
  64. func (ml *ModuleLogger) WarnF(format string, d ...interface{}) {
  65. if ml.levelLimit > 3 {
  66. return
  67. }
  68. ml.baseLogger.BLWarnF(ml.module, format, d...)
  69. }
  70. func (ml *ModuleLogger) WarnC(data map[string]string) {
  71. if ml.levelLimit > 3 {
  72. return
  73. }
  74. ml.baseLogger.BLWarnC(ml.module, data)
  75. }
  76. func (ml *ModuleLogger) Info(d ...interface{}) {
  77. if ml.levelLimit > 2 {
  78. return
  79. }
  80. ml.baseLogger.BLInfo(ml.module, d...)
  81. }
  82. func (ml *ModuleLogger) InfoF(format string, d ...interface{}) {
  83. if ml.levelLimit > 2 {
  84. return
  85. }
  86. ml.baseLogger.BLInfoF(ml.module, format, d...)
  87. }
  88. func (ml *ModuleLogger) InfoC(data map[string]string) {
  89. if ml.levelLimit > 2 {
  90. return
  91. }
  92. ml.baseLogger.BLInfoC(ml.module, data)
  93. }
  94. func (ml *ModuleLogger) Verbose(d ...interface{}) {
  95. if ml.levelLimit > 1 {
  96. return
  97. }
  98. ml.baseLogger.BLVerbose(ml.module, d...)
  99. }
  100. func (ml *ModuleLogger) VerboseF(format string, d ...interface{}) {
  101. if ml.levelLimit > 1 {
  102. return
  103. }
  104. ml.baseLogger.BLVerboseF(ml.module, format, d...)
  105. }
  106. func (ml *ModuleLogger) VerboseC(data map[string]string) {
  107. if ml.levelLimit > 1 {
  108. return
  109. }
  110. ml.baseLogger.BLVerboseC(ml.module, data)
  111. }
  112. func (ml *ModuleLogger) Debug(d ...interface{}) {
  113. if ml.levelLimit > 0 {
  114. return
  115. }
  116. ml.baseLogger.BLDebug(ml.module, d...)
  117. }
  118. func (ml *ModuleLogger) DebugF(format string, d ...interface{}) {
  119. if ml.levelLimit > 0 {
  120. return
  121. }
  122. ml.baseLogger.BLDebugF(ml.module, format, d...)
  123. }
  124. func (ml *ModuleLogger) DebugC(data map[string]string) {
  125. if ml.levelLimit > 0 {
  126. return
  127. }
  128. ml.baseLogger.BLDebugC(ml.module, data)
  129. }