formatter.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package hiedabke_writer
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "time"
  6. )
  7. type HiedaComplexLogFormatter interface {
  8. FormatHiedaComplexLog(module string, level string, data map[string]string) string
  9. }
  10. type HiedaStringLogFormatter interface {
  11. FormatHiedaStringLog(module string, level string, data string) string
  12. }
  13. type HiedaComplexLogJsonFormatter struct {
  14. }
  15. func (f *HiedaComplexLogJsonFormatter) FormatHiedaComplexLog(module string, level string, data map[string]string) string {
  16. jd, err := json.Marshal(data)
  17. if err != nil {
  18. return "{}"
  19. }
  20. ps := string(jd)
  21. return fmt.Sprintf("[%s] <%s> %s", module, level, ps)
  22. }
  23. type HiedaStringLogDefaultFormatter struct {
  24. }
  25. func (f *HiedaStringLogDefaultFormatter) FormatHiedaStringLog(module string, level string, data string) string {
  26. return fmt.Sprintf("[%s] <%s> %s", module, level, data)
  27. }
  28. type HiedaComplexLogJsonWithTimeFormatter struct {
  29. }
  30. func (f *HiedaComplexLogJsonWithTimeFormatter) FormatHiedaComplexLog(module string, level string, data map[string]string) string {
  31. jd, err := json.Marshal(data)
  32. if err != nil {
  33. return "{}"
  34. }
  35. ps := string(jd)
  36. tstr := time.Now().Format(time.RFC3339Nano)
  37. return fmt.Sprintf("{%s}[%s] <%s> %s", tstr, module, level, ps)
  38. }
  39. type HiedaStringLogDefaultWithTimeFormatter struct {
  40. }
  41. func (f *HiedaStringLogDefaultWithTimeFormatter) FormatHiedaStringLog(module string, level string, data string) string {
  42. tstr := time.Now().Format(time.RFC3339Nano)
  43. return fmt.Sprintf("{%s}[%s] <%s> %s", tstr, module, level, data)
  44. }