go test -run Test_Logger_Fiber_Logger
(t *testing.T)
| 389 | |
| 390 | // go test -run Test_Logger_Fiber_Logger |
| 391 | func Test_Logger_LoggerToWriter(t *testing.T) { |
| 392 | app := fiber.New() |
| 393 | |
| 394 | buf := bytebufferpool.Get() |
| 395 | t.Cleanup(func() { |
| 396 | bytebufferpool.Put(buf) |
| 397 | }) |
| 398 | |
| 399 | logger := fiberlog.DefaultLogger[*log.Logger]() |
| 400 | stdlogger := logger.Logger() |
| 401 | stdlogger.SetFlags(0) |
| 402 | logger.SetOutput(buf) |
| 403 | |
| 404 | testCases := []struct { |
| 405 | levelStr string |
| 406 | level fiberlog.Level |
| 407 | }{ |
| 408 | { |
| 409 | level: fiberlog.LevelTrace, |
| 410 | levelStr: "Trace", |
| 411 | }, |
| 412 | { |
| 413 | level: fiberlog.LevelDebug, |
| 414 | levelStr: "Debug", |
| 415 | }, |
| 416 | { |
| 417 | level: fiberlog.LevelInfo, |
| 418 | levelStr: "Info", |
| 419 | }, |
| 420 | { |
| 421 | level: fiberlog.LevelWarn, |
| 422 | levelStr: "Warn", |
| 423 | }, |
| 424 | { |
| 425 | level: fiberlog.LevelError, |
| 426 | levelStr: "Error", |
| 427 | }, |
| 428 | } |
| 429 | |
| 430 | for _, tc := range testCases { |
| 431 | level := strconv.Itoa(int(tc.level)) |
| 432 | t.Run(level, func(t *testing.T) { |
| 433 | buf.Reset() |
| 434 | |
| 435 | app.Use("/"+level, New(Config{ |
| 436 | Format: "${error}", |
| 437 | Stream: LoggerToWriter(logger, tc. |
| 438 | level), |
| 439 | })) |
| 440 | |
| 441 | app.Get("/"+level, func(_ fiber.Ctx) error { |
| 442 | return errors.New("some random error") |
| 443 | }) |
| 444 | |
| 445 | resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/"+level, http.NoBody)) |
| 446 | require.NoError(t, err) |
| 447 | require.Equal(t, fiber.StatusInternalServerError, resp.StatusCode) |
| 448 | require.Equal(t, "["+tc.levelStr+"] some random error\n", buf.String()) |