log_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package log_test
  2. import (
  3. "heckel.io/ntfy/log"
  4. "net/http"
  5. "testing"
  6. )
  7. const tagPay = "PAY"
  8. type visitor struct {
  9. UserID string
  10. IP string
  11. }
  12. func (v *visitor) Context() map[string]any {
  13. return map[string]any{
  14. "user_id": v.UserID,
  15. "ip": v.IP,
  16. }
  17. }
  18. func TestEvent_Info(t *testing.T) {
  19. /*
  20. log-level: INFO, user_id:u_abc=DEBUG
  21. log-level-overrides:
  22. - user_id=u_abc: DEBUG
  23. log-filter =
  24. */
  25. v := &visitor{
  26. UserID: "u_abc",
  27. IP: "1.2.3.4",
  28. }
  29. stripeCtx := log.NewCtx(map[string]any{
  30. "tag": "pay",
  31. })
  32. log.SetLevel(log.InfoLevel)
  33. //log.SetFormat(log.JSONFormat)
  34. //log.SetLevelOverride("user_id", "u_abc", log.DebugLevel)
  35. log.SetLevelOverride("tag", "pay", log.DebugLevel)
  36. mlog := log.Field("tag", "manager")
  37. mlog.Field("one", 1).Info("this is one")
  38. mlog.Err(http.ErrHandlerTimeout).Field("two", 2).Info("this is two")
  39. log.Info("somebody did something")
  40. log.
  41. Context(stripeCtx, v).
  42. Fields(map[string]any{
  43. "tier": "ti_abc",
  44. "user_id": "u_abc",
  45. }).
  46. Debug("Somebody paid something for $%d", 10)
  47. log.
  48. Field("tag", "account").
  49. Field("user_id", "u_abc").
  50. Debug("User logged in")
  51. }