All Versions
34
Latest Version
Avg Release Cycle
81 days
Latest Release
605 days ago

Changelog History
Page 1

  • v1.23.0 Changes

    August 24, 2022

    โœจ Enhancements:

    • #1147: Add a zapcore.LevelOf function to determine the level of a LevelEnabler or Core.
    • ๐ŸŒฒ #1155: Add zap.Stringers field constructor to log arrays of objects that implement String() string.
  • v1.22.0 Changes

    August 08, 2022

    โœจ Enhancements:

    • ๐ŸŒฒ #1071: Add zap.Objects and zap.ObjectValues field constructors to log arrays of objects. With these two constructors, you don't need to implement zapcore.ArrayMarshaler for use with zap.Array if those objects implement zapcore.ObjectMarshaler.
    • ๐Ÿ— #1079: Add SugaredLogger.WithOptions to build a copy of an existing SugaredLogger with the provided options applied.
    • ๐ŸŒฒ #1080: Add *ln variants to SugaredLogger for each log level. These functions provide a string joining behavior similar to fmt.Println.
    • #1088: Add zap.WithFatalHook option to control the behavior of the logger for Fatal-level log entries. This defaults to exiting the program.
    • #1108: Add a zap.Must function that you can use with NewProduction or NewDevelopment to panic if the system was unable to build the logger.
    • ๐ŸŒฒ #1118: Add a Logger.Log method that allows specifying the log level for a statement dynamically.

    Thanks to @cardil, @craigpastro, @sashamelentyev, @shota3506, and @zhupeijun ๐Ÿš€ for their contributions to this release.

  • v1.21.0 Changes

    February 07, 2022

    โœจ Enhancements:

    • ๐Ÿ“œ #1047: Add zapcore.ParseLevel to parse a Level from a string.
    • ๐Ÿ“œ #1048: Add zap.ParseAtomicLevel to parse an AtomicLevel from a string.

    ๐Ÿ›  Bugfixes:

    • #1058: Fix panic in JSON encoder when EncodeLevel is unset.

    Other changes:

    • ๐ŸŽ #1052: Improve encoding performance when the AddCaller and AddStacktrace options are used together.

    ๐Ÿš€ Thanks to @aerosol and @Techassi for their contributions to this release.

  • v1.20.0 Changes

    January 04, 2022

    โœจ Enhancements:

    • #989: Add EncoderConfig.SkipLineEnding flag to disable adding newline characters between log statements.
    • #1039: Add EncoderConfig.NewReflectedEncoder field to customize JSON encoding of reflected log fields.

    ๐Ÿ›  Bugfixes:

    • #1011: Fix inaccurate precision when encoding complex64 as JSON.
    • #554, #1017: Close JSON namespaces opened in MarshalLogObject methods when the methods return.
    • #1033: Avoid panicking in Sampler core if thereafter is zero.

    Other changes:

    • ๐Ÿ‘ #1028: Drop support for Go < 1.15.

    ๐Ÿš€ Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release.

  • v1.19.1 Changes

    September 08, 2021

    ๐Ÿ›  Bugfixes:

    • #1001: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon.
    • #1003: JSON: Fix inaccurate precision when encoding float32.
  • v1.19.0 Changes

    August 09, 2021

    โœจ Enhancements:

    • #975: Avoid panicking in Sampler core if the level is out of bounds.
    • #984: Reduce the size of BufferedWriteSyncer by aligning the fields better.

    ๐Ÿš€ Thanks to @lancoLiu and @thockin for their contributions to this release.

  • v1.18.1 Changes

    June 28, 2021

    ๐Ÿ›  Bugfixes:

    • #974: Fix nil dereference in logger constructed by zap.NewNop.
  • v1.18.0 Changes

    June 28, 2021

    โœจ Enhancements:

    • #961: Add zapcore.BufferedWriteSyncer, a new WriteSyncer that buffers messages in-memory and flushes them periodically.
    • #971: Add zapio.Writer to use a Zap logger as an io.Writer.
    • #897: Add zap.WithClock option to control the source of time via the new zapcore.Clock interface.
    • #949: Avoid panicking in zap.SugaredLogger when arguments of *w methods don't match expectations.
    • ๐Ÿ‘ #943: Add support for filtering by level or arbitrary matcher function to zaptest/observer.
    • #691: Comply with io.StringWriter and io.ByteWriter in Zap's buffer.Buffer.

    Thanks to @atrn0, @ernado, @heyanfu, @hnlq715, @zchee ๐Ÿš€ for their contributions to this release.

  • v1.17.0 Changes

    May 25, 2021

    ๐Ÿ›  Bugfixes:

    • [#867][]: Encode <nil> for nil error instead of a panic.
    • โšก๏ธ [#931][], [#936][]: Update minimum version constraints to address vulnerabilities in dependencies.

    โœจ Enhancements:

    • [#865][]: Improve alignment of fields of the Logger struct, reducing its size from 96 to 80 bytes.
    • ๐Ÿ‘ [#881][]: Support grpclog.LoggerV2 in zapgrpc.
    • ๐Ÿ‘ [#903][]: Support URL-encoded POST requests to the AtomicLevel HTTP handler with the application/x-www-form-urlencoded content type.
    • ๐Ÿ‘ [#912][]: Support multi-field encoding with zap.Inline.
    • [#913][]: Speed up SugaredLogger for calls with a single string.
    • โœ… [#928][]: Add support for filtering by field name to zaptest/observer.

    ๐Ÿš€ Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release.

  • v1.16.0 Changes

    September 01, 2020

    ๐Ÿ›  Bugfixes:

    • #828: Fix missing newline in IncreaseLevel error messages.
    • #835: Fix panic in JSON encoder when encoding times or durations
      without specifying a time or duration encoder.
    • #843: Honor CallerSkip when taking stack traces.
    • 0๏ธโƒฃ #862: Fix the default file permissions to use 0666 and rely on the umask instead.
    • ๐ŸŒฒ #854: Encode <nil> for nil Stringer instead of a panic error log.

    โœจ Enhancements:

    • #629: Added zapcore.TimeEncoderOfLayout to easily create time encoders
      for custom layouts.
    • ๐Ÿ”ง #697: Added support for a configurable delimiter in the console encoder.
    • โšก๏ธ #852: Optimize console encoder by pooling the underlying JSON encoder.
    • ๐Ÿ”Š #844: Add ability to include the calling function as part of logs.
    • #843: Add StackSkip for including truncated stacks as a field.
    • โœ… #861: Add options to customize Fatal behaviour for better testability.

    ๐Ÿš€ Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release.