- Bugfix: writer thread was not a daemon, would keep application from shutting down unless explicitly terminated. (#38)
- Use reflection to create AWS service clients from default factory methods. This will
be the default behavior for most SDK versions (unless explicit
clientFactory
orendpoint
configured). (#30 - Added the
clientFactory
property, which instructs appenders to call a static factory method to create their AWS service client. (#28 - Allow explicit endpoint configuration. This is intended to support clients using older
AWS SDKs that don't want to direct output to the
us-east-1
region. (#30 - When creating a service client via constructor, attempt to set the region from the
AWS_REGION
environment variable. This is an alternative to specifyingendpoint
in your logger config, but in my opinion isn't very useful because the list of available regions is dependent on your SDK version. For example, SDK 1.11.0 doesn't know about theus-east-2
region. (#30 - Enable per-record random partition keys for
KinesisAppender
. This can make better use of a multi-shard stream for applications with high logging output. (#24
- Added SNS as a destination.
CloudWatchAppender
andKinesisAppender
now refuse to initialize if given an invalid stream/group name. In earlier revisions they would try to strip out invalid characters, but this meant that you could send messages to the wrong place. Better to fail fast.- If unable to initialize, set internal queue to discard all messages. This avoids unnecessary memory consumption for messages that will never be sent.
- Allowed discard threshold and action to be reconfigured at runtime. This was added to support handling initialization errors, but may be useful for some applications.
- Bugfix:
CloudWatchAppender
now handles multi-part results fromDescribeLogGroups
andDescribeLogStreams
. This was unlikely to happen in the real world, but could affect sites with large numbers of similarly-named groups or streams. - Bugfix:
KinesisAppender
is now more resilient to rate limiting during initialization. This was primarily an issue with the integration tests, which create and delete streams at a high rate. In normal operations it could happen if a large number of applications started logging at the same time (such as a fleet of instances starting). AbstractLogWriter
now tracks whether an error happened during initialization. This is currently used for testing, but will be exposed via JMX at some future point.
- Added JsonLayout.
- Added an example application that sends output to all appenders.
- Added configurable message discard, to avoid out-of-memory errors when connectivity to AWS is spotty. (#15)
- Added Kinesis as a destination.
- Improved implementation of
CloudWatchAppender
, including integration tests.
- Bugfix: CloudWatch SDK dependency not marked as provided; might cause conflict with a project's own dependency versions.
- Bugfix: Default configuration was incorrect: log stream name was "{startTimestamp}", should be "{startupTimestamp}"
- Bugix: more resilient to rate limiting of logstream/loggroup creation.
- Initial release: CloudWatch Logs as a destination.