func TestLoggerIPAddress(t *testing.T) { buf := &bytes.Buffer{} log.SetOutput(buf) ip := "127.0.0.1" e := echo.New() req, _ := http.NewRequest(echo.GET, "/", nil) rec := httptest.NewRecorder() c := echo.NewContext(req, echo.NewResponse(rec), e) h := func(c *echo.Context) error { return c.String(http.StatusOK, "test") } mw := Logger() // With X-Real-IP req.Header.Add(echo.XRealIP, ip) mw(h)(c) assert.Contains(t, buf.String(), ip) // With X-Forwarded-For buf.Reset() req.Header.Del(echo.XRealIP) req.Header.Add(echo.XForwardedFor, ip) mw(h)(c) assert.Contains(t, buf.String(), ip) // with req.RemoteAddr buf.Reset() mw(h)(c) assert.Contains(t, buf.String(), ip) }
// SetOutput sets the output destination for the logger. func SetOutput(w io.Writer) { log.SetOutput(w) }