Skip to content

v1.0.0

Compare
Choose a tag to compare
@akshayjshah akshayjshah released this 15 Mar 00:05
· 414 commits to master since this release

This is zap's first stable release. All exported APIs are now final, and no further breaking changes will be made in the 1.x release series.

Anyone using a semver-aware dependency manager should now pin to ^1.

Breaking changes:

  • #366: Add byte-oriented APIs to encoders to log UTF-8 encoded text without casting from []byte to string.
  • #364: To support buffering outputs, add Sync methods to zapcore.Core, zap.Logger, and zap.SugaredLogger.
  • #371: Rename the testutils package to zaptest, which is less likely to clash with other testing helpers.

Bugfixes:

  • #362: Make the ISO8601 time formatters fixed-width, which is friendlier for tab-separated console output.
  • #369: Remove the automatic locks in zapcore.NewCore, which allows zap to work with concurrency-safe WriteSyncer implementations.
  • #347: Stop reporting errors when trying to fsync standard out on Linux systems.
  • #373: Report the correct caller from zap's standard library interoperability wrappers.

Enhancements:

  • #348: Add a registry allowing third-party encodings to work with zap's built-in Config.
  • #327: Make the representation of logger callers configurable (like times, levels, and durations).
  • #376: Allow third-party encoders to use their own buffer pools, which removes the last performance advantage that zap's encoders have over plugins.
  • #346: Add CombineWriteSyncers, a convenience function to tee multiple WriteSyncers and lock the result.
  • #365: Make zap's stacktraces compatible with mid-stack inlining (coming in Go 1.9).
  • #372: Export zap's observing logger as zaptest/observer. This makes it easier for particularly punctilious users to unit test their application's logging.

Thanks to @suyash, @htrendev, @flisky, @Ulexus, and @skipor for their contributions to this release.