durationlogger_test.go 2.4 KB

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