logstash-logback-encoder icon indicating copy to clipboard operation
logstash-logback-encoder copied to clipboard

Deprecate support for Logback Layout

Open brenuart opened this issue 4 years ago • 2 comments

Logback has deprecated the use of Layout in favour of Encoder. A LayoutWrappingEncoder adapter is provided to bridge between the two.

Logback OutputStreamAppender and sub-classes like ConsoleAppender still accept a Layout but wrap them with a LayoutWrappingEncoder and emit warnings saying:

This appender no longer admits a layout as a sub-component, set an encoder instead.
To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details.

The SyslogAppender however is still using a Layout but does not allow to set it by configuration.

Supporting Layout in logstash-logback-encoder is cumbersome and increase code complexity for little to no benefit. Proposition is to deprecate it for removal in the next major release.

brenuart avatar Sep 08 '21 11:09 brenuart

The SyslogAppender however is still using a Layout but does not allow to set it by configuration.

AbstractLogstashUdpSocketAppender extends SyslogAppenderBase, and allows the layout to be configured. It's typically configured with a Layout from logstash-logback-encoder.

If layout support is removed from logstash-logback-encoder, we'll need to copy the logic from SyslogAppenderBase into AbstractLogstashUdpSocketAppender

philsttr avatar Sep 09 '21 01:09 philsttr

AbstractLogstashUdpSocketAppender extends SyslogAppenderBase...

Correct. We should definitely see how we can make the UdpSocketAppender use an Encoder (or else) before deprecating Layouts...

brenuart avatar Sep 09 '21 08:09 brenuart