diff --git a/src/main/java/net/logstash/logback/appender/AbstractLogstashTcpSocketAppender.java b/src/main/java/net/logstash/logback/appender/AbstractLogstashTcpSocketAppender.java index 07cafc9d..04682266 100644 --- a/src/main/java/net/logstash/logback/appender/AbstractLogstashTcpSocketAppender.java +++ b/src/main/java/net/logstash/logback/appender/AbstractLogstashTcpSocketAppender.java @@ -1173,8 +1173,15 @@ public Duration getReconnectionDelay() { * @see PreferPrimaryDestinationConnectionStrategy#setSecondaryConnectionTTL(Duration) * @param secondaryConnectionTTL the TTL of a connection when connected to a secondary destination * @throws IllegalStateException if the {@link #connectionStrategy} is not a {@link PreferPrimaryDestinationConnectionStrategy} + * + * @deprecated use {@link PreferPrimaryDestinationConnectionStrategy#setSecondaryConnectionTTL(Duration)} instead. */ + @Deprecated public void setSecondaryConnectionTTL(Duration secondaryConnectionTTL) { + addWarn( + "Setting directly on the appender is deprecated. " + + "Instead you should explicitly set the connection strategy to and set its property to the desired value."); + if (connectionStrategy instanceof PreferPrimaryDestinationConnectionStrategy) { ((PreferPrimaryDestinationConnectionStrategy) connectionStrategy).setSecondaryConnectionTTL(secondaryConnectionTTL); } else { @@ -1182,6 +1189,16 @@ public void setSecondaryConnectionTTL(Duration secondaryConnectionTTL) { } } + /** + * Convenience method for accessing {@link PreferPrimaryDestinationConnectionStrategy#getSecondaryConnectionTTL()}. + * + * @return the secondary connection TTL or {@code null} if the connection strategy is not a {@link PreferPrimaryDestinationConnectionStrategy}. + * @deprecated use {@link PreferPrimaryDestinationConnectionStrategy#getSecondaryConnectionTTL()} instead. + * + * @see #getConnectionStrategy() + * @see PreferPrimaryDestinationConnectionStrategy#getSecondaryConnectionTTL() + */ + @Deprecated public Duration getSecondaryConnectionTTL() { if (connectionStrategy instanceof PreferPrimaryDestinationConnectionStrategy) { return ((PreferPrimaryDestinationConnectionStrategy) connectionStrategy).getSecondaryConnectionTTL(); @@ -1237,7 +1254,7 @@ public void setWriteBufferSize(int writeBufferSize) { * Alias for {@link #getRingBufferSize()}. * * @return the size of the ring buffer - * @deprecated use {@link #getRingBufferSize()} instead + * @deprecated use {@link #getRingBufferSize()} instead. */ @Deprecated public int getQueueSize() { diff --git a/src/test/java/net/logstash/logback/appender/LogstashTcpSocketAppenderTest.java b/src/test/java/net/logstash/logback/appender/LogstashTcpSocketAppenderTest.java index 8c7c314e..9b1809c9 100644 --- a/src/test/java/net/logstash/logback/appender/LogstashTcpSocketAppenderTest.java +++ b/src/test/java/net/logstash/logback/appender/LogstashTcpSocketAppenderTest.java @@ -61,6 +61,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.BasicStatusManager; import ch.qos.logback.core.encoder.Encoder; +import ch.qos.logback.core.status.OnConsoleStatusListener; import ch.qos.logback.core.status.Status; import ch.qos.logback.core.status.StatusManager; import ch.qos.logback.core.util.Duration; @@ -84,8 +85,6 @@ public class LogstashTcpSocketAppenderTest { @InjectMocks private final LogstashTcpSocketAppender appender = new TestableLogstashTcpSocketAppender(); - private LoggerContext context = new LoggerContext(); - private StatusManager statusManager = new BasicStatusManager(); @Mock @@ -121,6 +120,13 @@ protected Future scheduleReaderCallable(Callable readerCallable) { @BeforeEach public void setup() throws IOException { + // Output statuses on the console for easy debugging. Must be initialized early to capture + // warnings emitted by setter/getter methods before the appender is started. + OnConsoleStatusListener consoleListener = new OnConsoleStatusListener(); + consoleListener.start(); + statusManager.add(consoleListener); + + LoggerContext context = new LoggerContext(); context.setStatusManager(statusManager); when(socketFactory.createSocket()).thenReturn(socket);