mod_log.go 3.5 KB

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