Fixed FileAppender
's prudent mode so that it properly recovers from IO Errors (LOGBACK-1046)
Irrelevant or internal stack trace lines can now be omitted.(LOGBACK-540).
AccessEvent
now creates a copy of request attributes when its prepareForDeferredProcessing()
method is called. (LOGBACK-1033)
All threads opened by ch.qos.logback.core.util.ExecutorServiceUtil#THREAD_FACTORY
are now daemons, which fixes an application hang on shutdown when LoggerContext#stop()
is not called (LOGBACK-929).
Fixed an issue with RollingFileAppender
where the first rollover file could be unintentionally deleted, depending on the specified filename pattern (LOGBACK-894).
Fixed an issue with TeeHttpServletResponse
where the system default encoding would be used instead of the response encoding when constructing a new writer (LOGBACK-1023).
Fixed ConfigurationDelegate.groovy
to allow any appender that implements AppenderAttachable
, which supports third-party appenders, such as reactor-logback's AsyncAppender
(LOGBACK-1008)
Added support for specifying the callstack depth range in the PatternLayout
. For example, %caller{1..2}
displays the first two calls in the callstack.
Added HTTP request method to MDCInsertingServletFilter
.
Fixed time-zone dependent code in RollingCalendarTest
. (LOGBACK-116)
Simplified connection logic of SocketApender to reduce multi-threading overhead and unnecessary instantiation of SocketConnector
objects.
Fixed race condition in SMTPAppenderBase
causing missing or duplicate emails. (LOGBACK-909)
Fixed an issue with FileAppender
in prudent mode, where an interrupt could prevent further access to the file (LOGBACK-875).
Fixed IllegalStateException
when multiple threads write files to same directory (LOGBACK-128).
Changed queue consumption strategy in AbstractSocketAppender
from "take" to "peek/remove" in order to avoid losing an event on each socket connection break. Zero is now a deprecated queue size. A queue size of one should be taken instead to indicate synchronous processing. (LOGBACK-977)
RequestLogImpl
now has an overridable configure
method to allow extending implementations to configure it via methods other than the logback-access.xml
file.
Fixed a bug in AccessEvent
which could cause any AsyncAppender
based appender to corrupt the request headers, request parameters, or response headers, before logging.
SQL scripts to setup your logback database are now provided as JAR resources (LOGBACK-948).
Threads created internally by logback are now named logback-n, where n is an integer. For the first thread n is set to 1, for each successive thread n is incremented by 1.
Added max runtime parameter to AsyncAppender
to allow the appender to flush events, up to a maximum delay, during a stop of the LoggerContext. This can be used to ensure that all queued events are flushed.
Added new configuration element shutdownHook
to allow the user to specify a ShutdownHook implementation that will stop the Logback context upon JVM exit.
BasicStatusManager
now prevents adding more than one instance of OnConsoleStatusListener
as a status listener. This fixes LOGBACK-976.
TimeBasedRollingPolicy
now accepts a time zone in its %d
conversion pattern. (LOGBACK-611)
It is now possible to configure the character encoding used by SyslogAppender
to encode messages using the setCharset()
method. This fixes LOGBACK-732