durationlogger_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package logx
  2. import (
  3. "log"
  4. "strings"
  5. "sync/atomic"
  6. "testing"
  7. "time"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestWithDurationError(t *testing.T) {
  11. var builder strings.Builder
  12. log.SetOutput(&builder)
  13. WithDuration(time.Second).Error("foo")
  14. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  15. }
  16. func TestWithDurationErrorf(t *testing.T) {
  17. var builder strings.Builder
  18. log.SetOutput(&builder)
  19. WithDuration(time.Second).Errorf("foo")
  20. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  21. }
  22. func TestWithDurationErrorv(t *testing.T) {
  23. var builder strings.Builder
  24. log.SetOutput(&builder)
  25. WithDuration(time.Second).Errorv("foo")
  26. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  27. }
  28. func TestWithDurationInfo(t *testing.T) {
  29. var builder strings.Builder
  30. log.SetOutput(&builder)
  31. WithDuration(time.Second).Info("foo")
  32. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  33. }
  34. func TestWithDurationInfoConsole(t *testing.T) {
  35. old := atomic.LoadUint32(&encoding)
  36. atomic.StoreUint32(&encoding, plainEncodingType)
  37. defer func() {
  38. atomic.StoreUint32(&encoding, old)
  39. }()
  40. var builder strings.Builder
  41. log.SetOutput(&builder)
  42. WithDuration(time.Second).Info("foo")
  43. assert.True(t, strings.Contains(builder.String(), "ms"), builder.String())
  44. }
  45. func TestWithDurationInfof(t *testing.T) {
  46. var builder strings.Builder
  47. log.SetOutput(&builder)
  48. WithDuration(time.Second).Infof("foo")
  49. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  50. }
  51. func TestWithDurationInfov(t *testing.T) {
  52. var builder strings.Builder
  53. log.SetOutput(&builder)
  54. WithDuration(time.Second).Infov("foo")
  55. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  56. }
  57. func TestWithDurationSlow(t *testing.T) {
  58. var builder strings.Builder
  59. log.SetOutput(&builder)
  60. WithDuration(time.Second).Slow("foo")
  61. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  62. }
  63. func TestWithDurationSlowf(t *testing.T) {
  64. var builder strings.Builder
  65. log.SetOutput(&builder)
  66. WithDuration(time.Second).WithDuration(time.Hour).Slowf("foo")
  67. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  68. }
  69. func TestWithDurationSlowv(t *testing.T) {
  70. var builder strings.Builder
  71. log.SetOutput(&builder)
  72. WithDuration(time.Second).WithDuration(time.Hour).Slowv("foo")
  73. assert.True(t, strings.Contains(builder.String(), "duration"), builder.String())
  74. }