Akshay Shah
Akshay Shah
@AshKash That's supported via the `AddCaller` option in zap.
# Add Binary support to ArrayEncoder `zapcore.ObjectEncoder` supports logging binary blobs, but `zapcore.ArrayEncoder` doesn't. This isn't a huge problem, but it made https://github.com/thriftrw/thriftrw-go/pull/366 more complex (and less encoding-agnostic).
# Support `nil` in Encoder interfaces The `ObjectEncoder` and `ArrayEncoder` interfaces should support logging null values. Today, the only way to do this is via reflection, which isn't ideal for...
## Avoid checking the time where possible Rather than eagerly calling `time.Now`, do this just before logging. This cuts the expense of debug logging significantly. See #664 for details. Thanks...
I'd also prefer a smaller interface, like the one Prashant suggests (I believe we discussed this exact API in some Google Docs comments ages ago). I'm not sure we need...
This is as designed, and is [documented in `NewJSONEncoder`](https://godoc.org/go.uber.org/zap/zapcore#NewJSONEncoder). It's technically allowable by the JSON specification, and all deserialization code that I'm aware of (including Go's standard library) preserves only...
Huh! I'm a little surprised by this, but perhaps Google's also trying to avoid dropping the duplicate data. I'm no longer at Uber, so the current maintainers have the final...
Collating some ideas from uber-go/zap#460, I think there are two solutions on the table right now. 1. multierr exports an `IsMultierr` function, which zap uses to special-case this package. For...
I think we can accomplish all four goals (nil handling, `err.Error()` as a field, verbose output for `pkg/errors`, and array output for `multierr`) without any backward-incompatible changes, and without the...
We can do this via the unexported `errorGroup` interface now, correct?