Releases: resurfaceio/logger-go
v3.4.0
What's Changed
-
Feature - Add support for additional TLS config using new environment
USAGE_LOGGERS
variables:USAGE_LOGGERS_TLS_TIMEOUT
: Time to wait for TLS Handshake. Zero means no timeout
USAGE_LOGGERS_TLS_CUSTOM_CERT
: TLS certificate filepath to assign custom CA (e.g. self-signed cert)
USAGE_LOGGERS_TLS_INSECURE
: Skip certificate verification
Full Changelog: v3.3.2...v3.4.0
v3.3.2
What's Changed
-
Bug Fix - Modify
dispatcher
method to use a ticker instead of a conditional block in order to perform automatic flushing of any remaining messages in the current message bundle buffer. By having adefault
case, the goroutine never gets to pause its execution and resources don't become available until after the program exits. From the spec:If there is no default case, the "select" statement blocks until at least one of the communications can proceed.
A ticker prevents this issue by replacing the default case with another channel that blocks periodically.
Full Changelog: v3.3.1...v3.3.2
v3.3.1
This release is largely a result of tests performed by @kolin-newby and @monrax
What's Changed
- Bug Fix - Modify
stopDispatcher
method to use additionalstop
channel, instead of attempting to close msgQueue. Attempting to close a channel from a different goroutine than the sender results in a race condition. This fix removes such condition. - Feature - Export
BaseLogger.stopDispatcher
functionality throughHttpLogger.Stop
method - Feature - Add time-based (1 sec) automatic flush of message bundles to
dispatcher
- Feature - Add support for additional custom environment
USAGE_LOGGERS
variables:USAGE_LOGGERS_BODY_LIMIT
: upper limit to HTTP request/response body bytesUSAGE_LOGGERS_BUNDLE_SIZE
: NDJSON bundle threshold size, in bytesUSAGE_LOGGERS_MESSAGE_QUEUE_SIZE
: Number of buffered messages inmsgQueue
USAGE_LOGGERS_BUNDLE_QUEUE_SIZE
: Number of buffered NDJSON bundles insubmitQueue
- Drop support for older versions of go that have reached their end of life (1.15, 1.16, 1.17)
- Rollback magic bytes feature until its performance impact has been measured
Full Changelog: v3.2.3...v3.3.1
v3.2.3
What's Changed
- Bug Fix by @kolin-newby and @monrax - Modify background worker goroutine to use channels instead of mutex locks as synchronization mechanism. This fixes memory runaway issue where queued messages end up in the heap, rapidly increasing its size, after a large amount of goroutines were parked waiting for the lock.
- Feature by @monrax - Add magic bytes check to body reader wrapper, as well as support for multiple encodings.
- Update copyrights by @RobDickinson - We are now Graylog! 🚀
Full Changelog: v3.2.2...v3.2.3
v3.2.2
v3.2.1
What's Changed
- Bug Fix by @monrax - malformed client address key string in JSON message
Full Changelog: v3.2.0...v3.2.1
v3.2.0
What's Changed
- Bug Fix by @monrax - handle unescaped semicolons in query string
- Bug Fix by @monrax - body capture issue for requests with
content-type: application/x-www-form-urlencoded
- Dropped usage of
log.Fatal
- Update copyright statements
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
-
chore(readme): update to v3 by @monrax
-
chore(readme): update pkg to v3 by @monrax
-
feat(HttpLoggerForMux): add overflow cap to response writer wrapper by @monrax
-
chore(HttpLoggerForMux): remove additional import by @monrax
-
feat(HttpMessage): check for forwarded address and add header to mess… @monrax
-
Update README by @RobDickinson
-
Update copyright by @RobDickinson
-
Omit idea files @RobDickinson
-
fix(HttpLogger): add key prefix for custom fields @monrax
Full Changelog: v3.0.0...v3.1.0
Version 3.0.0
What's Changed
- Kolin/dev ndjson integration by @kolin-newby in #64
- Ramon/customfields by @kolin-newby in #65
- v3 merge by @kolin-newby in #68
- Updated comments for custom fields and added 1ms floor to interval re… by @kolin-newby in #69
Full Changelog: v2.0.1...v3.0.0
Version 2.0.1
What's Changed
- Bug Fix by @kolin-newby in #63 - Fixed a bug in the way that the now perimeter was being passed to sendHttpMessage function from the HttpLoggerForMux that resulted in the logged time being incorrect (gibberish).
Full Changelog: v2.0.0...v2.0.1