Skip to content

CHANGELOG: add v1.10.0 release notes (unreleased)#1518

Draft
thaJeztah wants to merge 1 commit intosirupsen:masterfrom
thaJeztah:prepare_release
Draft

CHANGELOG: add v1.10.0 release notes (unreleased)#1518
thaJeztah wants to merge 1 commit intosirupsen:masterfrom
thaJeztah:prepare_release

Conversation

@thaJeztah
Copy link
Collaborator

@thaJeztah thaJeztah commented Mar 9, 2026

Benchmarks

Details
goos: darwin
goarch: arm64
pkg: github.com/sirupsen/logrus
cpu: Apple M3 Pro
                                     │  v1.9.4.txt  │             master.txt              │
                                     │    sec/op    │   sec/op     vs base                │
Entry_WithError                        201.40n ± 1%   46.79n ± 2%  -76.77% (p=0.000 n=10)
Entry_WithField_Chain                   1.236µ ± 2%   1.147µ ± 1%   -7.24% (p=0.000 n=10)
Entry_WithFields/valid_fields_only      217.6n ± 0%   214.6n ± 1%   -1.36% (p=0.014 n=10)
Entry_WithFields/contains_func          263.6n ± 1%   264.1n ± 1%        ~ (p=0.630 n=10)
Entry_WithFields/contains_func_ptr      264.6n ± 1%   264.2n ± 0%        ~ (p=0.753 n=10)
Entry_WithFields/mixed_valid_invalid    311.6n ± 0%   313.8n ± 1%   +0.72% (p=0.000 n=10)
Entry_WithFields/larger_map             596.9n ± 1%   596.1n ± 1%        ~ (p=0.912 n=10)
Entry_ReportCaller_NoCaller             844.4n ± 0%   800.1n ± 1%   -5.25% (p=0.000 n=10)
Entry_ReportCaller_WithCaller           2.549µ ± 1%   2.461µ ± 1%   -3.43% (p=0.000 n=10)
Entry_ReportCaller_NoCaller_Depth4      848.1n ± 1%   807.1n ± 2%   -4.84% (p=0.000 n=10)
Entry_ReportCaller_WithCaller_Depth4    2.569µ ± 1%   2.466µ ± 1%   -3.99% (p=0.000 n=10)
ZeroTextFormatter                       384.9n ± 0%   320.3n ± 1%  -16.78% (p=0.000 n=10)
OneStringTextFormatter                  544.8n ± 1%   473.4n ± 1%  -13.10% (p=0.000 n=10)
OneNumericTextFormatter                 591.3n ± 1%   479.2n ± 1%  -18.96% (p=0.000 n=10)
OneBoolTextFormatter                    584.9n ± 1%   477.7n ± 1%  -18.33% (p=0.000 n=10)
NumericTextFormatter                    1.478µ ± 2%   1.099µ ± 1%  -25.65% (p=0.000 n=10)
BoolTextFormatter                      1271.5n ± 1%   939.7n ± 1%  -26.09% (p=0.000 n=10)
StringerTextFormatter                   1.777µ ± 1%   1.160µ ± 0%  -34.75% (p=0.000 n=10)
ErrorTextFormatter                      791.9n ± 1%   591.5n ± 1%  -25.31% (p=0.000 n=10)
SmallTextFormatter                      825.7n ± 6%   747.4n ± 2%   -9.49% (p=0.000 n=10)
LargeTextFormatter                      4.786µ ± 2%   4.081µ ± 1%  -14.74% (p=0.000 n=10)
SmallColoredTextFormatter              1133.0n ± 1%   725.3n ± 1%  -35.98% (p=0.000 n=10)
LargeColoredTextFormatter               6.886µ ± 1%   4.089µ ± 1%  -40.62% (p=0.000 n=10)
SmallJSONFormatter                      1.389µ ± 1%   1.400µ ± 3%        ~ (p=0.109 n=10)
LargeJSONFormatter                      7.093µ ± 0%   7.224µ ± 1%   +1.85% (p=0.000 n=10)
DummyLogger                             1.482µ ± 1%   1.299µ ± 1%  -12.38% (p=0.000 n=10)
DummyLoggerNoLock                       1.463µ ± 1%   1.290µ ± 1%  -11.79% (p=0.000 n=10)
LoggerJSONFormatter                     1.854µ ± 1%   1.680µ ± 1%   -9.36% (p=0.000 n=10)
LoggerTextFormatter                     1.565µ ± 1%   1.295µ ± 2%  -17.25% (p=0.000 n=10)
geomean                                 1.006µ        832.0n       -17.34%

                                     │  v1.9.4.txt  │                master.txt                 │
                                     │     B/op     │     B/op      vs base                     │
Entry_WithError                          448.0 ± 0%       0.0 ± 0%  -100.00% (p=0.000 n=10)
Entry_WithField_Chain                  2.188Ki ± 0%   2.078Ki ± 0%    -5.00% (p=0.000 n=10)
Entry_WithFields/valid_fields_only       448.0 ± 0%     448.0 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/contains_func           488.0 ± 0%     488.0 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/contains_func_ptr       488.0 ± 0%     488.0 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/mixed_valid_invalid     488.0 ± 0%     488.0 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/larger_map            1.320Ki ± 0%   1.320Ki ± 0%         ~ (p=1.000 n=10) ¹
Entry_ReportCaller_NoCaller              821.0 ± 0%     816.0 ± 0%    -0.61% (p=0.000 n=10)
Entry_ReportCaller_WithCaller          1.583Ki ± 0%   1.562Ki ± 0%    -1.30% (p=0.000 n=10)
Entry_ReportCaller_NoCaller_Depth4       821.0 ± 0%     816.0 ± 0%    -0.61% (p=0.000 n=10)
Entry_ReportCaller_WithCaller_Depth4   1.583Ki ± 0%   1.562Ki ± 0%    -1.30% (p=0.000 n=10)
ZeroTextFormatter                        272.0 ± 0%     232.0 ± 0%   -14.71% (p=0.000 n=10)
OneStringTextFormatter                   304.0 ± 0%     264.0 ± 0%   -13.16% (p=0.000 n=10)
OneNumericTextFormatter                  308.0 ± 0%     264.0 ± 0%   -14.29% (p=0.000 n=10)
OneBoolTextFormatter                     308.0 ± 0%     264.0 ± 0%   -14.29% (p=0.000 n=10)
NumericTextFormatter                     920.0 ± 0%     808.0 ± 0%   -12.17% (p=0.000 n=10)
BoolTextFormatter                        626.0 ± 0%     552.0 ± 0%   -11.82% (p=0.000 n=10)
StringerTextFormatter                    968.0 ± 0%     808.0 ± 0%   -16.53% (p=0.000 n=10)
ErrorTextFormatter                       472.0 ± 0%     424.0 ± 0%   -10.17% (p=0.000 n=10)
SmallTextFormatter                       528.0 ± 0%     488.0 ± 0%    -7.58% (p=0.000 n=10)
LargeTextFormatter                     3.773Ki ± 0%   3.156Ki ± 0%   -16.36% (p=0.000 n=10)
SmallColoredTextFormatter                600.0 ± 0%     392.0 ± 0%   -34.67% (p=0.000 n=10)
LargeColoredTextFormatter              4.406Ki ± 0%   2.859Ki ± 0%   -35.11% (p=0.000 n=10)
SmallJSONFormatter                     1.078Ki ± 0%   1.070Ki ± 0%    -0.72% (p=0.000 n=10)
LargeJSONFormatter                     5.086Ki ± 0%   5.078Ki ± 0%    -0.15% (p=0.000 n=10)
DummyLogger                              748.0 ± 0%     707.0 ± 0%    -5.48% (p=0.000 n=10)
DummyLoggerNoLock                        748.0 ± 0%     707.0 ± 0%    -5.48% (p=0.000 n=10)
LoggerJSONFormatter                    2.156Ki ± 0%   2.148Ki ± 0%    -0.36% (p=0.000 n=10)
LoggerTextFormatter                    1.625Ki ± 0%   1.570Ki ± 0%    -3.37% (p=0.000 n=10)
geomean                                  868.7                      ?                       ² ³
¹ all samples are equal
² summaries must be >0 to compute geomean
³ ratios must be >0 to compute geomean

                                     │ v1.9.4.txt  │               master.txt                │
                                     │  allocs/op  │ allocs/op   vs base                     │
Entry_WithError                         3.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)
Entry_WithField_Chain                   15.00 ± 0%   14.00 ± 0%    -6.67% (p=0.000 n=10)
Entry_WithFields/valid_fields_only      3.000 ± 0%   3.000 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/contains_func          5.000 ± 0%   5.000 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/contains_func_ptr      5.000 ± 0%   5.000 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/mixed_valid_invalid    5.000 ± 0%   5.000 ± 0%         ~ (p=1.000 n=10) ¹
Entry_WithFields/larger_map             5.000 ± 0%   5.000 ± 0%         ~ (p=1.000 n=10) ¹
Entry_ReportCaller_NoCaller             18.00 ± 0%   16.00 ± 0%   -11.11% (p=0.000 n=10)
Entry_ReportCaller_WithCaller           29.00 ± 0%   27.00 ± 0%    -6.90% (p=0.000 n=10)
Entry_ReportCaller_NoCaller_Depth4      18.00 ± 0%   16.00 ± 0%   -11.11% (p=0.000 n=10)
Entry_ReportCaller_WithCaller_Depth4    29.00 ± 0%   27.00 ± 0%    -6.90% (p=0.000 n=10)
ZeroTextFormatter                      10.000 ± 0%   7.000 ± 0%   -30.00% (p=0.000 n=10)
OneStringTextFormatter                 11.000 ± 0%   8.000 ± 0%   -27.27% (p=0.000 n=10)
OneNumericTextFormatter                12.000 ± 0%   8.000 ± 0%   -33.33% (p=0.000 n=10)
OneBoolTextFormatter                   12.000 ± 0%   8.000 ± 0%   -33.33% (p=0.000 n=10)
NumericTextFormatter                    19.00 ± 0%   10.00 ± 0%   -47.37% (p=0.000 n=10)
BoolTextFormatter                      18.000 ± 0%   9.000 ± 0%   -50.00% (p=0.000 n=10)
StringerTextFormatter                   22.00 ± 0%   10.00 ± 0%   -54.55% (p=0.000 n=10)
ErrorTextFormatter                     14.000 ± 0%   9.000 ± 0%   -35.71% (p=0.000 n=10)
SmallTextFormatter                     12.000 ± 0%   9.000 ± 0%   -25.00% (p=0.000 n=10)
LargeTextFormatter                      19.00 ± 0%   14.00 ± 0%   -26.32% (p=0.000 n=10)
SmallColoredTextFormatter              15.000 ± 0%   7.000 ± 0%   -53.33% (p=0.000 n=10)
LargeColoredTextFormatter               46.00 ± 0%   12.00 ± 0%   -73.91% (p=0.000 n=10)
SmallJSONFormatter                      25.00 ± 0%   23.00 ± 0%    -8.00% (p=0.000 n=10)
LargeJSONFormatter                      75.00 ± 0%   73.00 ± 0%    -2.67% (p=0.000 n=10)
DummyLogger                             13.00 ± 0%   10.00 ± 0%   -23.08% (p=0.000 n=10)
DummyLoggerNoLock                       13.00 ± 0%   10.00 ± 0%   -23.08% (p=0.000 n=10)
LoggerJSONFormatter                     30.00 ± 0%   28.00 ± 0%    -6.67% (p=0.000 n=10)
LoggerTextFormatter                     21.00 ± 0%   17.00 ± 0%   -19.05% (p=0.000 n=10)
geomean                                 13.83                    ?                       ² ³
¹ all samples are equal
² summaries must be >0 to compute geomean
³ ratios must be >0 to compute geomean

                          │  v1.9.4.txt  │              master.txt               │
                          │     B/s      │      B/s       vs base                │
ZeroTextFormatter           126.4Mi ± 0%    151.9Mi ± 1%  +20.18% (p=0.000 n=10)
OneStringTextFormatter      103.3Mi ± 1%    118.8Mi ± 1%  +15.06% (p=0.000 n=10)
OneNumericTextFormatter     90.32Mi ± 1%   111.46Mi ± 1%  +23.40% (p=0.000 n=10)
OneBoolTextFormatter        94.57Mi ± 1%   115.77Mi ± 1%  +22.42% (p=0.000 n=10)
NumericTextFormatter        85.22Mi ± 2%   114.60Mi ± 1%  +34.48% (p=0.000 n=10)
BoolTextFormatter           74.25Mi ± 1%   100.46Mi ± 1%  +35.30% (p=0.000 n=10)
StringerTextFormatter       75.13Mi ± 0%   115.17Mi ± 1%  +53.29% (p=0.000 n=10)
ErrorTextFormatter          80.69Mi ± 1%   108.03Mi ± 1%  +33.89% (p=0.000 n=10)
SmallTextFormatter          99.33Mi ± 6%   109.74Mi ± 2%  +10.48% (p=0.000 n=10)
LargeTextFormatter          56.98Mi ± 2%    66.84Mi ± 1%  +17.31% (p=0.000 n=10)
SmallColoredTextFormatter   121.2Mi ± 1%    189.3Mi ± 1%  +56.26% (p=0.000 n=10)
LargeColoredTextFormatter   77.56Mi ± 1%   130.60Mi ± 1%  +68.38% (p=0.000 n=10)
SmallJSONFormatter          78.28Mi ± 1%    77.66Mi ± 3%        ~ (p=0.105 n=10)
LargeJSONFormatter          55.12Mi ± 0%    54.13Mi ± 1%   -1.81% (p=0.000 n=10)
geomean                     84.72Mi         106.9Mi       +26.17%

And for the GitHub release notes;


Logrus v1.10.0

This release focuses on performance, concurrency correctness, and modern Go alignment.

🚀 Performance

Major improvements in TextFormatter and entry hot paths:

  • ~17% geomean runtime improvement
  • ~26% throughput increase
  • Up to ~40% faster colored formatter output
  • Large allocation reductions across text/colored formatter paths
  • WithError path significantly faster and allocation-free

JSONFormatter performance remains largely unchanged.

🔒 Concurrency & Correctness

  • Fix reentrant logging deadlocks (e.g. logging from within MarshalJSON / formatter code).
  • Eliminate race conditions in entry and formatter paths.
  • Improve locking boundaries around formatter and hooks.

➕ Added

  • Basic slog hook for bridging to Go’s log/slog.

⚠️ Behavioral Changes

  • Minimum Go version is now 1.23.
  • TextFormatter now renders []byte as raw/quoted strings instead of numeric slices.
    If you relied on the previous slice-of-ints output, convert explicitly before logging.

v1.10 is primarily a performance and correctness release with no intentional public API changes.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds draft release notes for the upcoming Logrus v1.10.0 release to the project changelog, capturing performance, concurrency, and feature highlights.

Changes:

  • Add a new 1.10.0 section summarizing fixes, features, behavioral changes, and performance notes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants