From 798b5615ec9ff8b836d225c99c1d8b3292945ecb Mon Sep 17 00:00:00 2001 From: toimtoimtoim Date: Thu, 11 Dec 2025 22:40:41 +0200 Subject: [PATCH] Changelog for 4.14.0 --- CHANGELOG.md | 40 +++++++++++++++++++++++++++++++--------- echo.go | 2 +- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85f522e43..1d4fa25a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,43 @@ # Changelog -## v4.14.0 - 2025-12-xx +## v4.14.0 - 2025-12-11 + +`middleware.Logger` has been deprecated. For request logging, use `middleware.RequestLogger` or +`middleware.RequestLoggerWithConfig`. + +`middleware.RequestLogger` replaces `middleware.Logger`, offering comparable configuration while relying on the +Go standard library’s new `slog` logger. + +The previous default output format was JSON. The new default follows the standard `slog` logger settings. +To continue emitting request logs in JSON, configure `slog` accordingly: +```go +slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil))) +e.Use(middleware.RequestLogger()) +``` + **Security** -* Logger middleware: escape string values when logger format looks like JSON +* Logger middleware json string escaping and deprecation by @aldas in https://github.com/labstack/echo/pull/2849 + **Enhancements** -* Add `middleware.RequestLogger` function to replace `middleware.Logger`. `middleware.RequestLogger` uses default slog logger. - Default slog logger output can be configured to JSON format like that: - ```go - slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil))) - e.Use(middleware.RequestLogger()) - ``` -* Deprecate `middleware.Logger` function and point users to `middleware.RequestLogger` and `middleware.RequestLoggerWithConfig` +* Update deps by @aldas in https://github.com/labstack/echo/pull/2807 +* refactor to use reflect.TypeFor by @cuiweixie in https://github.com/labstack/echo/pull/2812 +* Use Go 1.25 in CI by @aldas in https://github.com/labstack/echo/pull/2810 +* Modernize context.go by replacing interface{} with any by @vishr in https://github.com/labstack/echo/pull/2822 +* Fix typo in SetParamValues comment by @vishr in https://github.com/labstack/echo/pull/2828 +* Fix typo in ContextTimeout middleware comment by @vishr in https://github.com/labstack/echo/pull/2827 +* Improve BasicAuth middleware: use strings.Cut and RFC compliance by @vishr in https://github.com/labstack/echo/pull/2825 +* Fix duplicate plus operator in router backtracking logic by @yuya-morimoto in https://github.com/labstack/echo/pull/2832 +* Replace custom private IP range check with built-in net.IP.IsPrivate by @kumapower17 in https://github.com/labstack/echo/pull/2835 +* Ensure proxy connection is closed in proxyRaw function(#2837) by @kumapower17 in https://github.com/labstack/echo/pull/2838 +* Update deps by @aldas in https://github.com/labstack/echo/pull/2843 +* Update golang.org/x/* deps by @aldas in https://github.com/labstack/echo/pull/2850 + + ## v4.13.4 - 2025-05-22 diff --git a/echo.go b/echo.go index ea6ba1619..0bb64d214 100644 --- a/echo.go +++ b/echo.go @@ -259,7 +259,7 @@ const ( const ( // Version of Echo - Version = "4.13.4" + Version = "4.14.0" website = "https://echo.labstack.com" // http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo banner = `