Skip to content

Releases: logfellow/logstash-logback-encoder

logstash-logback-encoder-4.9

15 Mar 06:18
Compare
Choose a tag to compare
  • #205 Make compatible with logback 1.2.x (while still maintaining runtime compatibility with logback 1.1.x)
  • #192 Fix typo in README.md

logstash-logback-encoder-4.8

15 Nov 23:45
Compare
Choose a tag to compare
  • #165 Fix documentation for ShortenedThrowableConverter
  • #171 Add ability to output version field as string (instead of number)
  • #172 / #173 Stop providers when JsonProviders.stop() is called (instead of starting them)
  • #175 Remove out-of-date disclaimer on logback issue
  • #186 Document how to end prefix/suffix with whitespace
  • #187 Fix typo in documentation
  • #190 disable SerializationFeature.FAIL_ON_EMPTY_BEANS by default, and add better error handling around failed serializations

logstash-logback-encoder-4.7

01 May 23:37
Compare
Choose a tag to compare
  • #149 Don't log stacktrace for unknown host exception
  • #139 Add support for global custom fields for access events
    • Note that net.logstash.logback.composite.loggingevent.GlobalCustomFieldsJsonProvider was moved to net.logstash.logback.composite.GlobalCustomFieldsJsonProvider
  • #161 Fix NPE when set/get custom fields programmatically
  • #163 Normalize access log Response/Request headers (to lowercase)
  • Updated 3rd party libraries
    • logback 1.1.6 (from 1.1.3)
    • jackson 2.6.5 (from 2.5.4)
    • disruptor 3.3.4 (from 3.3.2)
    • assertj 2.4.0 (from 2.1.0) (test only)
    • animal-sniffer 1.15 (from 1.14) (buildtime only)
  • Misc Documentation Improvements
    • #147 Add documentation example for JsonFactoryDecorator
    • #137 Fix ecnoder for AccessTcpSocketAppender example
    • #158 Fix prefix/suffix documentation
    • #133 Document reconnectionDelay
    • #135 Clarify xml element name to use for renaming fields

logstash-logback-encoder-4.6

27 Jan 05:06
Compare
Choose a tag to compare
  • #131 Add json provider for nested objects, so that logstash format version 0 can be created using the composite encoder.
  • #124, add JSON provider for adding logback context name to json output
  • #134, check to ensure properties are defined when destinations are set using properties.

logstash-logback-encoder-4.5.1

25 Aug 02:28
Compare
Choose a tag to compare
  • Fix #129 to remain runtime-compatible with java 1.6

logstash-logback-encoder-4.5

24 Aug 20:13
Compare
Choose a tag to compare
  • #115 / #116 Failover TCP connections
    • Multiple destinations can now be specified for the TCP appenders. Logs are sent to the first that accepts a connection
    • Deprecated remoteHost / port config parameters in favor of destination config parameter
  • #85 Reestablish TCP connection when socket's input stream reaches the end of the stream
    • Fixes reconnection issues when communicating with Amazon's Elastic Load Balancer (ELB)
  • #114 Shutdown faster when keep alive is enabled (only works on java 1.7+)
  • #119 Removed runtime dependency on commons-io
  • #119 Reduced jar size by minimizing shaded jar
  • #117 Detect incompatible apis at compile time using animal-sniffer-plugin

logstash-logback-encoder-4.4

11 Jul 19:35
Compare
Choose a tag to compare

Backwards Incompatibility:

As part of the introduction of StructuredArguments (#99), the return type of the methods in net.logstash.logback.marker.Markers changed to net.logstash.logback.marker.LogstashMarker instead of specific subclasses of LogstashMarker.

Before -> After

If your code stored the result of those methods in a variable of the old return type, then your code will encounter a compile-time error on upgrade. You will need to change the type of your variable to LogstashMarker.

For example, change this:

        ObjectAppendingMarker marker = Markers.append("foo", foo);

to this:

        LogstashMarker marker = Markers.append("foo", foo);

If your code used inline markers (perhaps also with method chaining) without assigning them to variables you will encounter runtime errors. You will need to recompile your code to fix the runtime errors.

This backwards incompatibility was inadvertently overlooked, otherwise we would have bumped the version to 5.0, since this project follows semantic versioning practices.

Changes:

  • #99 Add StructuredArguments as an alternative to Markers for adding fields to the log event JSON output
  • #110 Clear events from RingBuffer after they have been processed (fixes memory leak)
  • #91 Introduced includeCallerData(to be consistent with logback), and deprecated includeCallerInfo
  • #103 Fix isIncludeMdc()
  • #102 fixed setting a prefix without a suffix on the CompositeJsonLayout
  • #100 Created a provider for ILoggingEvent.getMessage()
  • #104 Replace org.slf4j.helpers.LogstashBasicMarker with net.logstash.logback.marker.LogstashBasicMarker
  • Updated dependency versions for logback, jackson, junit, assertj

logstash-logback-encoder-4.2

18 Feb 01:50
Compare
Choose a tag to compare
  • #77 For TCP appender, resolve hostname on each reconnect
  • #76 For TCP appender, add keepAlive functionality and improve error handling

logstash-logback-encoder-4.1

15 Feb 00:37
Compare
Choose a tag to compare
  • Changed async and tcp appenders to use daemon threads by default, so that shutdown is not required for the jvm to exit properly.
  • Changed async and tcp appenders to use BlockingWaitStrategy to consume less CPU resources when idle
  • Added ability to configure wait strategy using simple string configuration
  • Added custom SSL configuration support to all TCP appenders (using SSL support provided by logback)
    • SSL can now be used for AccessEvents

logstash-logback-encoder-4.0

08 Feb 02:12
Compare
Choose a tag to compare

Changes in 4.0:

  • New CompositeJsonFormatter/Encoder/Layout were created to allow customizing the JSON output through the use of providers.
    • Each provider contained within the composite contributes to the JSON output.
    • All existing functionality was converted to individual providers
    • LogstashFormatter/Encoder/Layout were refactored to be just extensions of the composite concept that contain a pre-defined set of providers
  • A new pattern-based provider was added. This provider allows usage of standard PatternLayout patterns within a JSON template. This allows much easier configuration, since you can layout your JSON event as a JSON string with embedded patterns for values.
  • Added a new AsyncDisruptorAppender that is similar to logback's AsyncAppender, but uses an LMAX Disruptor RingBufferas the inter-thread data exchange mechanism (as opposed to a BlockingQueue used by the AsyncAppender)
    • Refactored the tcp appender to extend the AsyncDisruptorAppender so it can take advantage of the benefits of using a RingBuffer
  • Add ability to define a prefix and suffix on the encoder/layouts that appear before/after the JSON output
  • Lots of doc improvements

XML configuration is fully backwards compatible except for the following:

  • The queueSize for the tcp appenders must now be a power of 2. Also, recommend you switch to using ringBufferSize instead of queueSize.
  • The eventDelayLimit for the tcp appenders is no longer used (since the the appender will never block the logging thread)