高热共公日志库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.6 KiB

  1. package grlogs
  2. import (
  3. "fmt"
  4. "golib.gaore.com/GaoreGo/grlogs/logs"
  5. "os"
  6. "sync"
  7. )
  8. var loggers = sync.Map{}
  9. var envkey = "CENTER_RUNMODE"
  10. type Logger struct {
  11. Lable string
  12. *logs.BeeLogger
  13. }
  14. func (self *Logger) SetAdapter(level Level, adapter Adapter) *Logger {
  15. if call, ok := adatperMapper[adapter]; ok {
  16. if err := call(self, level); err != nil {
  17. fmt.Println(err)
  18. }
  19. }
  20. return self
  21. }
  22. func New(label string, channelLens ...int64) (l *Logger, loaded bool) {
  23. var channellens int64
  24. var tmp interface{}
  25. tmp, loaded = loggers.LoadOrStore(label, new(Logger))
  26. l = tmp.(*Logger)
  27. if len(channelLens) > 0 {
  28. channellens = channelLens[0]
  29. }
  30. if !loaded {
  31. l.Lable = label
  32. l.BeeLogger = logs.NewLogger(channellens)
  33. l.BeeLogger.Lable = label
  34. l.Env = os.Getenv(envkey)
  35. l.SetPrefix(fmt.Sprintf("[env:%s logger:%s]", os.Getenv(envkey), label))
  36. l.EnableFuncCallDepth(true)
  37. l.SetLogFuncCallDepth(2)
  38. }
  39. return
  40. }
  41. func Get(label string, channelLens ...int64) (l *Logger) {
  42. var filelevel Level = LevelInfo
  43. var loaded bool
  44. if os.Getenv(envkey) == "dev" {
  45. filelevel = LevelAll
  46. }
  47. if l, loaded = New(label, channelLens...); !loaded {
  48. l.SetAdapter(filelevel, AdapterFile).SetAdapter(LevelAll, AdapterConsole)
  49. }
  50. return
  51. }
  52. func GetEs(label string, channelLens ...int64) (l *Logger) {
  53. var filelevel Level = LevelInfo
  54. var loaded bool
  55. if os.Getenv(envkey) == "dev" {
  56. filelevel = LevelAll
  57. }
  58. if l, loaded = New(label, channelLens...); !loaded {
  59. l.SetAdapter(filelevel, AdapterFile).SetAdapter(LevelAll, AdapterConsole).SetAdapter(filelevel, AdapterElasticSearch)
  60. }
  61. return
  62. }