- Fix type errors introduced in #201 (required to restore compatibility with Python 3.8)
- Test infrastructure improvements
- Support log group tagging (#201)
- Use timeout when waiting for queues to empty at shutdown
- Avoid crashing flush() when CreateLogStream API call is throttled (#192)
- Replace deprecated function datatime.utcnow() (#196)
- Truncate messages based on bytes, not unicode characters (#181)
- Test suite improvements (#180, #182)
- Use repr to represent all JSON fields of unknown types by default.
Previously, when passing a mapping (dictionary) as a log message,
watchtower would replace datetime objects with their “.isoformat()”
string representation, and would replace all other
non-JSON-serializable objects with
null
. The new behavior is to use the output of repr() to represent these non-JSON-serializable objects. This change may cause your logger to log more data than you intended, which is why it triggers a major version bump. If you use watchtower to log sensitive information or objects with large repr strings, you are advised to examine your log messages to see if any newly visible data should be sanitized. If you need to customize this behavior, you can pass a custom JSON default serializer using thejson_serialize_default
keyword argument.
- Use correct default log stream name
- Deconflict log streams from process pools in default log stream name
- Documentation and CI improvements
- Update empty message filtering to catch formatted string case (#162)
- Rename log_group to log_group_name for consistency with the Boto3 API
- Rename stream_name to log_stream_name for consistency with the Boto3 API
- Introduce the ability to pass a Boto3 logs client and remove the ability to pass Boto3 sessions
- Document the ability to pass a Boto3 configuration profile name for declarative configs
- Remove the Django customization, which was deprecated and unneeded. Django can use watchtower directly via its logging configuration as documented in the readme
- Introduce configurable log formatters. Special thanks to @terencehonles for starting this work (#117, #138)
- Use logging.Handler.handleError to correctly handle errors while processing log records (#149)
- Move stream name determining logic to separate method (#148)
- Reset internal state on fork to prevent deadlocks in worker threads (#139)
- Drop Python 3.5 support
- Expand documentation
- Update test and release infrastructure
- Catch OperationAbortedException in _idempotent_create. Fixes #136
- Don’t crash if nextSequenceToken is missing. Fixes #134
- Protect against message storms from sending botocore debug logs
- Apply filter to self instead of forcing log level on shutdown
Force botocore logging level to be INFO or higher on shutdown
- Add fix/tests for log stream re-creation regression (#131)
- Fix sequence token cache (#116)
- Drop compatibility for Python 2 (#109)
- Fix message truncation for messages above AWS limit (#112)
- Allow custom endpoint url (#114)
- Package API is stable
- Create log streams lazily (#97)
- Test and package infrastructure improvements
- Bug fix on log group retention (#80)
Fix another Homebrew-related release failure
- Re-release 0.7.0 due to Homebrew-related automation failure
- Add put_retention_policy (#79)
- Add create_log_stream (#77)
- Minor test and doc improvements
- Set creating_log_stream to False when creation fails. (#72)
- Define all instance attributes before attempting to create boto session (#76)
- Serialize objects with datetimes, and allow custom serializer default functions to be used (#73)
- Add ‘strftime’ parameter to stream_name formatter (#71)
- Documentation improvements
- Short-circuit emit if still initializing
- Fix close twice hang forever bug (#58)
Fix broken formatting in README
Fix JSON message serialization, part 2
Fix JSON message serialization
- Warn instead of crashing logger on delivery failure
- Support for django log (#39)
- Fix for unhashble type error (fixes issue #44) (#45)
- Do not shut down on flush()
- Enhancement: boto3 auth profile option (#41)
- Documentation improvements
- Release script fix
Fix makefile targets
- Fix interrupted release
- Repo housekeeping
- Add option to avoid CreateLogGroup (#21; thanks to Hong Minhee)
- Allow specifying log stream name (PR #16, #18). Thanks to @mianos, @fangyizhu.
- Fix docs, skip failed release
- Fix docs
- Allow custom boto3 sessions to be passed in for customization of service connection options (PR #15). Thanks to @clifflu.
- Sort batches by timestamp before sending them. Avoids crashes due to out-of-order log streams fed to the logger and rejected by the CWL API (PR #14). Thanks to @haydenth.
- Fix handling of empty queue at deadline timeout (PR #8). Thanks to @ryanmfw.
- Packaging and documentation fixes.
- Bump boto3 version.
- Documentation fixes.
- Initial release.