Skip to content

Upgrading ch.qos.logback:logback-classic 0.9 to 1

Breaking0.9.30 → 1.6.6Breaking10Security14Deprecated4New13Changed22Fixed33Other19

BreakingUpgrade verdict

10 breaking changes and 14 security fixes.

  • A helper class nobody used is gone; the normal MDC adapter is unchanged.
  • Code that referenced the old invocation gate class name must be updated to the new name.
  • Some old, deprecated parts of the library have been deleted, so code that still uses them will no longer compile or run.
  • Configuration files can no longer use Janino-based Java expressions to decide whether a section of configuration applies. Use the newer <condition> element or the online migration service instead.
Top 5 of 28 that need code or config changes

Moves org.slf4j:slf4j-api 1.6.2 → 2.0.19. Your build may pick other versions.

1 package of its own release moves with it.

Breaking10
Removes the unused ch.qos.logback.classic.util.LogbackMDCAdapterSimple class; LogbackMDCAdapter remains the default MDC adapter.
ch.qos.logback.classic.util.LogbackMDCAdapterSimpleLogbackMDCAdapter
Renames SimpleInvocationGate to FixedIntervalInvocationGate and adds burst support via BatchedFixedIntervalInvocationGate.
SimpleInvocationGateFixedIntervalInvocationGateBatchedFixedIntervalInvocationGate
Removes certain deprecated variables, methods, and classes; the full list is in release_1.6.0.txt.
Removes support for conditional configuration processing based on Java expressions evaluated with the Janino library.
<condition>Janino
ConsoleCharsetPropertyDefiner is no longer shipped because the Java 21 multi-release compilation of logback-core is disabled, removing the class from the published artifact.
ConsoleCharsetPropertyDefinerch.qos.logback.core.property.ConsoleCharsetPropertyDefiner
Appender names and appender references are no longer subject to variable substitution.
Removes all Receiver classes and components, which had already been disabled for several years.
Receiver
MDCBasedDiscriminator now rejects invalid MDC values (empty, over 64 chars, containing .. or special characters) and falls back to DefaultValue.
MDCBasedDiscriminatorSiftingAppenderMDCDefaultValue
SimpleSocketServer and SimpleSSLSocketServer now require an explicit client IP whitelist; an empty whitelist accepts no clients.
SimpleSocketServerSimpleSSLSocketServeraddAllowedClientAddress(String)setAllowedClientAddresses(Collection)
logback-classic.jar is missing the META-INF/services directory, making it unusable with SLF4J; version 1.5.31 fixes this.
META-INF/services
Security14
LoggingEventVO rejects deserialized throwable proxy graphs with back-references, throwing InvalidObjectException.
LoggingEventVODefaultThrowableRendererSyslogAppenderInvalidObjectException
Fixes CVE-2026-104721, an incomplete fix of CVE-2026-19880 where MDC values could still contain path traversal and special characters.
MDC
MDCBasedDiscriminator now strips forward and backward slashes from MDC values before using them as discriminating keys, addressing CVE-2026-19880.
MDCBasedDiscriminatorSiftingAppender
The 'condition' attribute in <if> elements now rejects unicode escape sequences (\u and \U), closing a bypass of the prohibition on the new operator in Janino-evaluated conditions.
<if>condition
HardenedObjectInputStream now throws InvalidClassException when deserializing Proxy classes, closing a deserialization whitelist bypass (CVE-2026-10532).
HardenedObjectInputStreamInvalidClassException
HardenedModelInputStream now only deserializes an explicit allowlist of java.lang and java.util classes, closing a deserialization whitelist bypass.
HardenedModelInputStream
SSLSocketAppender SSL parameters now enable hostname verification by default and default the protocol to TLSv1.2.
SSLSocketAppender
ViewStatusMessagesServletBase now escapes special characters such as & as character entities when printing the status message field.
ViewStatusMessagesServletBase
Logback-core now only instantiates configuration components compatible with the class expected by the encapsulating class, fixing an ACE vulnerability.
Stops outputting substituted variable values when the variable name contains "password", "secret" or "confidential" (case-insensitive) to prevent information leakage.
Disallows the "new" operator in the condition attribute of <if> elements, fixing an ACE vulnerability.
<if>condition
Restricts the "Clear" button in ViewStatusMessagesServlet to POST requests.
ViewStatusMessagesServlet
logback serialization vulnerability
High · CVSS 7.1
QOS.ch Logback vulnerable to Deserialization of Untrusted Data
Critical · CVSS 9.8
Deprecated4
SimpleInvocationGate, deprecated in 1.6.3, is now marked for removal; use FixedIntervalInvocationGate instead.
SimpleInvocationGateFixedIntervalInvocationGate
Deprecates the withJansi property on ConsoleAppender in favour of JansiConsoleAppender.
ConsoleAppenderwithJansiJansiConsoleAppender
Deprecates the 'condition' attribute within the <if> element due to vulnerabilities from runtime Java code compilation and execution using Janino; removal planned for 2027.
<if>conditionJanino
logback-classic emits a warning about the removal of JaninoEventEvaluator in version 1.5.13 and suggests an online migration tool.
JaninoEventEvaluator

Generated by DepDelta from published JVM bytecode. Not mixed with prose notes.

  • removed: method Logger.getLoggerRemoteView(): LoggerRemoteView
  • removed: method LoggerContext.isStarted(): boolean
  • removed: method PatternLayout.getDefaultConverterMap(): Map
  • removed: static field PatternLayout.defaultConverterMap: Map
  • removed: static method BasicConfigurator.configureDefaultContext(): void
  • changed: class BasicConfigurator → class BasicConfigurator extends ContextAwareBase implements Configurator
  • changed: final class Logger implements Logger, LocationAwareLogger, AppenderAttachable, Serializable → final class Logger implements Logger, LocationAwareLogger, LoggingEventAware, AppenderAttachable, Serializable
  • changed: static method BasicConfigurator.configure(LoggerContext): void → method BasicConfigurator.configure(LoggerContext): Configurator.ExecutionStatus
  • added: class AsyncAppender extends AsyncAppenderBase
  • added: ctor AsyncAppender()
  • added: ctor BasicConfigurator()
  • added: method AsyncAppender.isDiscardable(ILoggingEvent): boolean
  • added: method AsyncAppender.isIncludeCallerData(): boolean
  • added: method AsyncAppender.preprocess(ILoggingEvent): void
  • added: method AsyncAppender.setIncludeCallerData(boolean): void
  • added: method Logger.log(LoggingEvent): void
  • added: method Logger.makeLoggingEventBuilder(Level): LoggingEventBuilder
  • added: method LoggerContext.getFrameworkPackages(): List
  • added: method LoggerContext.getMDCAdapter(): MDCAdapter
  • added: method LoggerContext.getSequenceNumberGenerator(): SequenceNumberGenerator
  • added: method LoggerContext.setMDCAdapter(MDCAdapter): void
  • added: method LoggerContext.setSequenceNumberGenerator(SequenceNumberGenerator): void
  • added: method PatternLayout.getDefaultConverterSupplierMap(): Map
  • added: method PatternLayout.getPresentationHeaderPrefix(): String
  • added: static field ClassicConstants.AUTOCONFIG_FILE: String
  • added: static field ClassicConstants.CLASS_NA: String
  • added: static field ClassicConstants.CONFIG_FILE_PROPERTY: String
  • added: static field ClassicConstants.DECLARING_CLASS_NA: String
  • added: static field ClassicConstants.FILENAME_NA: String
  • added: static field ClassicConstants.FINALIZE_SESSION: String
  • added: static field ClassicConstants.LINE_NUMBER_NA: int
  • added: static field ClassicConstants.LOGBACK_CLASSIC_VERSION_MESSAGE: String
  • added: static field ClassicConstants.LOGBACK_VERSIONS_MISMATCH: String
  • added: static field ClassicConstants.METHOD_NAME_NA: String
  • added: static field ClassicConstants.MODEL_CONFIG_FILE_PROPERTY: String
  • added: static field ClassicConstants.REQUEST_METHOD: String
  • added: static field ClassicConstants.TEST_AUTOCONFIG_FILE: String
  • added: static field LoggerContext.DEFAULT_PACKAGING_DATA: boolean
  • added: static field PatternLayout.CONVERTER_CLASS_TO_KEY_MAP: Map
  • added: static field PatternLayout.DEFAULT_CONVERTER_SUPPLIER_MAP: Map
  • added: static field PatternLayout.HEADER_PREFIX: String
  • added: static method Level.convertAnSLF4JLevel(Level): Level
  • added: static method Level.fromLocationAwareLoggerInteger(int): Level
  • added: static method Level.toLocationAwareLoggerInteger(Level): int
  • removed: class EvaluatorTemplate implements IEvaluator, GroovyObject
  • removed: class GEventEvaluator extends EventEvaluatorBase
  • removed: class JaninoEventEvaluator extends JaninoEventEvaluatorBase
  • removed: ctor EvaluatorTemplate()
  • removed: ctor GEventEvaluator()
  • removed: ctor JaninoEventEvaluator()
  • removed: method EvaluatorTemplate.doEvaluate(ILoggingEvent): boolean
  • removed: method GEventEvaluator.evaluate(ILoggingEvent): boolean
  • removed: method GEventEvaluator.getExpression(): String
  • removed: method GEventEvaluator.setExpression(String): void
  • removed: method GEventEvaluator.start(): void
  • removed: method JaninoEventEvaluator.getDecoratedExpression(): String
  • removed: method JaninoEventEvaluator.getParameterNames(): String[]
  • removed: method JaninoEventEvaluator.getParameterTypes(): Class[]
  • removed: method JaninoEventEvaluator.getParameterValues(ILoggingEvent): Object[]
  • removed: static field JaninoEventEvaluator.DEFAULT_PARAM_NAME_LIST: List
  • removed: static field JaninoEventEvaluator.DEFAULT_PARAM_TYPE_LIST: List
  • removed: static field JaninoEventEvaluator.IMPORT_LEVEL: String
  • added: class ExceptionMatchEvaluator extends EventEvaluatorBase
  • added: class MarkerList
  • added: class StubEventEvaluator extends EventEvaluatorBase
  • added: ctor ExceptionMatchEvaluator()
  • added: ctor MarkerList(List)
  • added: ctor StubEventEvaluator()
  • added: field StubEventEvaluator.matcherList: List
  • added: method ExceptionMatchEvaluator.evaluate(ILoggingEvent): boolean
  • added: method ExceptionMatchEvaluator.getExceptionClass(): String
  • added: method ExceptionMatchEvaluator.isStarted(): boolean
  • added: method ExceptionMatchEvaluator.setExceptionClass(String): void
  • added: method ExceptionMatchEvaluator.start(): void
  • added: method ExceptionMatchEvaluator.stop(): void
  • added: method MarkerList.contains(String): boolean
  • added: method MarkerList.getFirstMarker(): Marker
  • added: method StubEventEvaluator.addMatcher(Matcher): void
  • added: method StubEventEvaluator.evaluate(ILoggingEvent): boolean
  • added: method StubEventEvaluator.getExpression(): String
  • added: method StubEventEvaluator.setExpression(String): void
  • added: method StubEventEvaluator.start(): void
  • added: static field StubEventEvaluator.MSG_0: String
  • added: static field StubEventEvaluator.MSG_1: String
  • added: static field StubEventEvaluator.MSG_2: String
  • removed: class DBAppender extends DBAppenderBase
  • removed: class DBHelper
  • removed: class SQLBuilder
  • removed: ctor DBAppender()
  • removed: ctor DBHelper()
  • removed: ctor SQLBuilder()
  • removed: field DBAppender.insertExceptionSQL: String
  • removed: field DBAppender.insertPropertiesSQL: String
  • removed: field DBAppender.insertSQL: String
  • removed: method DBAppender.getGeneratedKeysMethod(): Method
  • removed: method DBAppender.getInsertSQL(): String
  • removed: method DBAppender.insertProperties(Map, Connection, long): void
  • removed: method DBAppender.insertThrowable(IThrowableProxy, Connection, long): void
  • removed: method DBAppender.secondarySubAppend(ILoggingEvent, Connection, long): void
  • removed: method DBAppender.setDbNameResolver(DBNameResolver): void
  • removed: method DBAppender.start(): void
  • removed: method DBAppender.subAppend(ILoggingEvent, Connection, PreparedStatement): void
  • removed: static field DBAppender.GET_GENERATED_KEYS_METHOD: Method
  • removed: static field DBHelper.EXCEPTION_EXISTS: short
  • removed: static field DBHelper.PROPERTIES_EXIST: short
  • removed: static method DBHelper.computeReferenceMask(ILoggingEvent): short
  • removed: class DefaultDBNameResolver implements DBNameResolver
  • removed: class SimpleDBNameResolver implements DBNameResolver
  • removed: ctor DefaultDBNameResolver()
  • removed: ctor SimpleDBNameResolver()
  • removed: enum ColumnName
  • removed: enum TableName
  • removed: interface DBNameResolver
  • removed: method DBNameResolver.getColumnName(Enum): String
  • removed: method DBNameResolver.getTableName(Enum): String
  • removed: method DefaultDBNameResolver.getColumnName(Enum): String
  • removed: method DefaultDBNameResolver.getTableName(Enum): String
  • removed: method SimpleDBNameResolver.getColumnName(Enum): String
  • removed: method SimpleDBNameResolver.getTableName(Enum): String
  • removed: method SimpleDBNameResolver.setColumnNamePrefix(String): void
  • removed: method SimpleDBNameResolver.setColumnNameSuffix(String): void
  • removed: method SimpleDBNameResolver.setTableNamePrefix(String): void
  • removed: method SimpleDBNameResolver.setTableNameSuffix(String): void
  • removed: static field ColumnName.ARG0: ColumnName
  • removed: static field ColumnName.ARG1: ColumnName
  • removed: static field ColumnName.ARG2: ColumnName
  • removed: static field ColumnName.ARG3: ColumnName
  • removed: static field ColumnName.CALLER_CLASS: ColumnName
  • removed: static field ColumnName.CALLER_FILENAME: ColumnName
  • removed: static field ColumnName.CALLER_LINE: ColumnName
  • removed: static field ColumnName.CALLER_METHOD: ColumnName
  • removed: static field ColumnName.EVENT_ID: ColumnName
  • removed: static field ColumnName.FORMATTED_MESSAGE: ColumnName
  • removed: static field ColumnName.I: ColumnName
  • removed: static field ColumnName.LEVEL_STRING: ColumnName
  • removed: static field ColumnName.LOGGER_NAME: ColumnName
  • removed: static field ColumnName.MAPPED_KEY: ColumnName
  • removed: static field ColumnName.MAPPED_VALUE: ColumnName
  • removed: static field ColumnName.REFERENCE_FLAG: ColumnName
  • removed: static field ColumnName.THREAD_NAME: ColumnName
  • removed: static field ColumnName.TIMESTMP: ColumnName
  • removed: static field ColumnName.TRACE_LINE: ColumnName
  • removed: static field TableName.LOGGING_EVENT: TableName
  • removed: static field TableName.LOGGING_EVENT_EXCEPTION: TableName
  • removed: static field TableName.LOGGING_EVENT_PROPERTY: TableName
  • removed: static method ColumnName.valueOf(String): ColumnName
  • removed: static method ColumnName.values(): ColumnName[]
  • removed: static method TableName.valueOf(String): TableName
  • removed: static method TableName.values(): TableName[]
  • added: class JsonEncoder extends EncoderBase
  • added: ctor JsonEncoder()
  • added: method JsonEncoder.appendArgumentArray(StringBuilder, ILoggingEvent): void
  • added: method JsonEncoder.appendCustomFields(StringBuilder, ILoggingEvent): void
  • added: method JsonEncoder.appendKeyValuePairs(StringBuilder, ILoggingEvent): void
  • added: method JsonEncoder.appendLoggerContext(StringBuilder, LoggerContextVO): void
  • added: method JsonEncoder.appendMDC(StringBuilder, ILoggingEvent): void
  • added: method JsonEncoder.appendMap(StringBuilder, String, Map): void
  • added: method JsonEncoder.appendMarkers(StringBuilder, ILoggingEvent): void
  • added: method JsonEncoder.appendSTEPArray(StringBuilder, StackTraceElementProxy[], int): void
  • added: method JsonEncoder.appendThrowableProxy(StringBuilder, String, IThrowableProxy): void
  • added: method JsonEncoder.appendThrowableProxy(StringBuilder, String, IThrowableProxy, boolean): void
  • added: method JsonEncoder.appendValueSeparator(StringBuilder, boolean[]): void
  • added: method JsonEncoder.appenderMember(StringBuilder, String, String): void
  • added: method JsonEncoder.appenderMemberWithIntValue(StringBuilder, String, int): void
  • added: method JsonEncoder.appenderMemberWithLongValue(StringBuilder, String, long): void
  • added: method JsonEncoder.encode(ILoggingEvent): byte[]
  • added: method JsonEncoder.footerBytes(): byte[]
  • added: method JsonEncoder.headerBytes(): byte[]
  • added: method JsonEncoder.setWithArguments(boolean): void
  • added: method JsonEncoder.setWithContext(boolean): void
  • added: method JsonEncoder.setWithFormattedMessage(boolean): void
  • added: method JsonEncoder.setWithKVPList(boolean): void
  • added: method JsonEncoder.setWithLevel(boolean): void
  • added: method JsonEncoder.setWithLoggerName(boolean): void
  • added: method JsonEncoder.setWithMDC(boolean): void
  • added: method JsonEncoder.setWithMarkers(boolean): void
  • added: method JsonEncoder.setWithMessage(boolean): void
  • added: method JsonEncoder.setWithNanoseconds(boolean): void
  • added: method JsonEncoder.setWithSequenceNumber(boolean): void
  • added: method JsonEncoder.setWithThreadName(boolean): void
  • added: method JsonEncoder.setWithThrowable(boolean): void
  • added: method JsonEncoder.setWithTimestamp(boolean): void
  • added: static field JsonEncoder.ARGUMENT_ARRAY_ATTR_NAME: String
  • added: static field JsonEncoder.BIRTHDATE_ATTR_NAME: String
  • added: static field JsonEncoder.CAUSE_ATTR_NAME: String
  • added: static field JsonEncoder.CLASS_NAME_ATTR_NAME: String
  • added: static field JsonEncoder.CLOSE_ARRAY: char
  • added: static field JsonEncoder.CLOSE_OBJ: char
  • added: static field JsonEncoder.COL_SP: String
  • added: static field JsonEncoder.COMMON_FRAMES_COUNT_ATTR_NAME: String
  • added: static field JsonEncoder.CONTEXT_ATTR_NAME: String
  • added: static field JsonEncoder.CONTEXT_PROPERTIES_ATTR_NAME: String
  • added: static field JsonEncoder.ENTRY_SEPARATOR: char
  • added: static field JsonEncoder.FORMATTED_MESSAGE_ATTR_NAME: String
  • added: static field JsonEncoder.KEY_VALUE_PAIRS_ATTR_NAME: String
  • added: static field JsonEncoder.LEVEL_ATTR_NAME: String
  • added: static field JsonEncoder.LOGGER_ATTR_NAME: String
  • added: static field JsonEncoder.MARKERS_ATTR_NAME: String
  • added: static field JsonEncoder.MDC_ATTR_NAME: String
  • added: static field JsonEncoder.MESSAGE_ATTR_NAME: String
  • added: static field JsonEncoder.METHOD_NAME_ATTR_NAME: String
  • added: static field JsonEncoder.NAME_ATTR_NAME: String
  • added: static field JsonEncoder.NANOSECONDS_ATTR_NAME: String
  • added: static field JsonEncoder.OPEN_ARRAY: char
  • added: static field JsonEncoder.OPEN_OBJ: char
  • added: static field JsonEncoder.QUOTE: char
  • added: static field JsonEncoder.QUOTE_COL: String
  • added: static field JsonEncoder.SEQUENCE_NUMBER_ATTR_NAME: String
  • added: static field JsonEncoder.SP: char
  • added: static field JsonEncoder.STEP_ARRAY_NAME_ATTRIBUTE: String
  • added: static field JsonEncoder.SUPPRESSED_ATTR_NAME: String
  • added: static field JsonEncoder.THREAD_NAME_ATTR_NAME: String
  • added: static field JsonEncoder.THROWABLE_ATTR_NAME: String
  • added: static field JsonEncoder.TIMESTAMP_ATTR_NAME: String
  • added: static field JsonEncoder.VALUE_SEPARATOR: char
  • removed: class AppenderDelegate extends ComponentDelegate
  • removed: class ComponentDelegate extends ContextAwareBase implements GroovyObject
  • removed: class ConfigurationDelegate extends ContextAwareBase implements GroovyObject
  • removed: class GafferConfigurator implements GroovyObject
  • removed: class GafferUtil
  • removed: class PropertyUtil implements GroovyObject
  • removed: ctor AppenderDelegate(Appender)
  • removed: ctor ComponentDelegate(Object)
  • removed: ctor ConfigurationDelegate()
  • removed: ctor GafferConfigurator(LoggerContext)
  • removed: ctor GafferUtil()
  • removed: ctor PropertyUtil()
  • removed: enum NestingType implements GroovyObject
  • removed: interface ConfigurationContributor
  • removed: method AppenderDelegate.getLabel(): String
  • removed: method ComponentDelegate.analyzeArgs(Object[]): Object
  • removed: method ComponentDelegate.cascadeFields(ComponentDelegate): void
  • removed: method ComponentDelegate.getComponent(): Object
  • removed: method ComponentDelegate.getComponentName(): String
  • removed: method ComponentDelegate.getFieldsToCaccade(): List
  • removed: method ComponentDelegate.getLabel(): String
  • removed: method ComponentDelegate.getLabelFistLetterInUpperCase(): String
  • removed: method ComponentDelegate.injectParent(Object): void
  • removed: method ComponentDelegate.methodMissing(String, Object): void
  • removed: method ComponentDelegate.parseClassArgument(Object): Class
  • removed: method ComponentDelegate.parseNameArgument(Object): String
  • removed: method ComponentDelegate.propertyMissing(String, Object): void
  • removed: method ConfigurationContributor.getMappings(): Map
  • removed: method ConfigurationDelegate.appender(String, Class): void
  • removed: method ConfigurationDelegate.appender(String, Class, Closure): void
  • removed: method ConfigurationDelegate.conversionRule(String, Class): void
  • removed: method ConfigurationDelegate.getAppenderList(): List
  • removed: method ConfigurationDelegate.getDeclaredOrigin(): Object
  • removed: method ConfigurationDelegate.logger(String, Level): void
  • removed: method ConfigurationDelegate.logger(String, Level, List): void
  • removed: method ConfigurationDelegate.logger(String, Level, List, Boolean): void
  • removed: method ConfigurationDelegate.root(Level): void
  • removed: method ConfigurationDelegate.root(Level, List): void
  • removed: method ConfigurationDelegate.scan(): void
  • removed: method ConfigurationDelegate.scan(String): void
  • removed: method ConfigurationDelegate.setAppenderList(List): void
  • removed: method ConfigurationDelegate.statusListener(Class): void
  • removed: method ConfigurationDelegate.timestamp(String): String
  • removed: method ConfigurationDelegate.timestamp(String, long): String
  • removed: method ConfigurationDelegate.turboFilter(Class): void
  • removed: method ConfigurationDelegate.turboFilter(Class, Closure): void
  • removed: method GafferConfigurator.getContext(): LoggerContext
  • removed: method GafferConfigurator.informContextOfURLUsedForConfiguration(URL): void
  • removed: method GafferConfigurator.run(File): void
  • removed: method GafferConfigurator.run(String): void
  • removed: method GafferConfigurator.run(URL): void
  • removed: method GafferConfigurator.setContext(LoggerContext): void
  • removed: method NestingType.next(): NestingType
  • removed: method NestingType.previous(): NestingType
  • removed: static field NestingType.AS_COLLECTION: NestingType
  • removed: static field NestingType.MAX_VALUE: NestingType
  • removed: static field NestingType.MIN_VALUE: NestingType
  • removed: static field NestingType.NA: NestingType
  • removed: static field NestingType.SINGLE: NestingType
  • removed: static method GafferUtil.runGafferConfiguratorOn(LoggerContext, Object, File): void
  • removed: static method GafferUtil.runGafferConfiguratorOn(LoggerContext, Object, URL): void
  • removed: static method NestingType.valueOf(String): NestingType
  • removed: static method NestingType.values(): NestingType[]
  • removed: static method PropertyUtil.attach(NestingType, Object, Object, String): void
  • removed: static method PropertyUtil.hasAdderMethod(Object, String): boolean
  • removed: static method PropertyUtil.nestingType(Object, String): NestingType
  • removed: static method PropertyUtil.transformFirstLetter(String, Closure): String
  • removed: static method PropertyUtil.upperCaseFirstLetter(String): String
  • added: class WithLayoutListAppender extends AppenderBase
  • added: ctor WithLayoutListAppender()
  • added: field WithLayoutListAppender.list: List
  • added: method WithLayoutListAppender.append(ILoggingEvent): void
  • added: method WithLayoutListAppender.getPattern(): String
  • added: method WithLayoutListAppender.setPattern(String): void
  • added: method WithLayoutListAppender.start(): void
  • removed: method HTMLLayout.getDefaultConverterMap(): Map
  • added: method HTMLLayout.getDefaultConverterSupplierMap(): Map
  • removed: class JMXConfigurator extends ContextAwareBase implements JMXConfiguratorMBean, LoggerContextListener
  • removed: class MBeanUtil
  • removed: ctor JMXConfigurator(LoggerContext, MBeanServer, ObjectName)
  • removed: ctor MBeanUtil()
  • removed: interface JMXConfiguratorMBean
  • removed: method JMXConfigurator.getLoggerEffectiveLevel(String): String
  • removed: method JMXConfigurator.getLoggerLevel(String): String
  • removed: method JMXConfigurator.getLoggerList(): List
  • removed: method JMXConfigurator.getStatuses(): List
  • removed: method JMXConfigurator.isResetResistant(): boolean
  • removed: method JMXConfigurator.onLevelChange(Logger, Level): void
  • removed: method JMXConfigurator.onReset(LoggerContext): void
  • removed: method JMXConfigurator.onStart(LoggerContext): void
  • removed: method JMXConfigurator.onStop(LoggerContext): void
  • removed: method JMXConfigurator.reloadByFileName(String): void
  • removed: method JMXConfigurator.reloadByURL(URL): void
  • removed: method JMXConfigurator.reloadDefaultConfiguration(): void
  • removed: method JMXConfigurator.setLoggerLevel(String, String): void
  • removed: method JMXConfigurator.toString(): String
  • removed: method JMXConfiguratorMBean.getLoggerEffectiveLevel(String): String
  • removed: method JMXConfiguratorMBean.getLoggerLevel(String): String
  • removed: method JMXConfiguratorMBean.getLoggerList(): List
  • removed: method JMXConfiguratorMBean.getStatuses(): List
  • removed: method JMXConfiguratorMBean.reloadByFileName(String): void
  • removed: method JMXConfiguratorMBean.reloadByURL(URL): void
  • removed: method JMXConfiguratorMBean.reloadDefaultConfiguration(): void
  • removed: method JMXConfiguratorMBean.setLoggerLevel(String, String): void
  • removed: static method MBeanUtil.createAndRegisterJMXConfigurator(MBeanServer, LoggerContext, JMXConfigurator, ObjectName, Object): void
  • removed: static method MBeanUtil.getObjectNameFor(String, Class): String
  • removed: static method MBeanUtil.isRegistered(MBeanServer, ObjectName): boolean
  • removed: static method MBeanUtil.string2ObjectName(Context, Object, String): ObjectName
  • removed: static method MBeanUtil.unregister(LoggerContext, MBeanServer, ObjectName, Object): void
  • removed: method JoranConfigurator.addInstanceRules(RuleStore): void
  • added: class ModelClassToModelHandlerLinker extends ModelClassToModelHandlerLinkerBase
  • added: class PropertiesConfigurator extends ContextAwareBase
  • added: class ReconfigureOnChangeTask extends ContextAwareBase implements Runnable
  • added: class SerializedModelConfigurator extends ContextAwareBase implements Configurator
  • added: ctor ModelClassToModelHandlerLinker(Context)
  • added: ctor PropertiesConfigurator()
  • added: ctor ReconfigureOnChangeTask()
  • added: ctor SerializedModelConfigurator()
  • added: field SerializedModelConfigurator.modelInterpretationContext: ModelInterpretationContext
  • added: method JoranConfigurator.addElementSelectorAndActionAssociations(RuleStore): void
  • added: method JoranConfigurator.addModelHandlerAssociations(DefaultProcessor): void
  • added: method JoranConfigurator.buildModelInterpretationContext(): void
  • added: method JoranConfigurator.makeAnotherInstance(): JoranConfigurator
  • added: method JoranConfigurator.sanityCheck(Model): void
  • added: method ModelClassToModelHandlerLinker.getConfigurationModelHandlerFactoryMethod(): ModelHandlerFactoryMethod
  • added: method ModelClassToModelHandlerLinker.link(DefaultProcessor): void
  • added: method ModelClassToModelHandlerLinker.setConfigurationModelHandlerFactoryMethod(ModelHandlerFactoryMethod): void
  • added: method PropertiesConfigurator.doConfigure(File): void
  • added: method PropertiesConfigurator.doConfigure(InputStream): void
  • added: method PropertiesConfigurator.doConfigure(String): void
  • added: method PropertiesConfigurator.doConfigure(URL): void
  • added: method PropertiesConfigurator.setContext(Context): void
  • added: method PropertiesConfigurator.subst(String): String
  • added: method ReconfigureOnChangeTask.run(): void
  • added: method ReconfigureOnChangeTask.setScheduledFuture(ScheduledFuture): void
  • added: method ReconfigureOnChangeTask.setScheduredFuture(ScheduledFuture): void
  • added: method ReconfigureOnChangeTask.toString(): String
  • added: method SerializedModelConfigurator.configure(LoggerContext): Configurator.ExecutionStatus
  • added: static field PropertiesConfigurator.LOGBACK_LOGGER_PREFIX: String
  • added: static field ReconfigureOnChangeTask.DETECTED_CHANGE_IN_CONFIGURATION_FILES: String
  • added: static field ReconfigureOnChangeTask.FALLING_BACK_TO_SAFE_CONFIGURATION: String
  • added: static field ReconfigureOnChangeTask.RE_REGISTERING_PREVIOUS_SAFE_CONFIGURATION: String
  • added: static field SerializedModelConfigurator.AUTOCONFIG_MODEL_FILE: String
  • added: static field SerializedModelConfigurator.TEST_AUTOCONFIG_MODEL_FILE: String
  • removed: class EvaluatorAction extends AbstractEventEvaluatorAction
  • removed: class JMXConfiguratorAction extends Action
  • removed: ctor EvaluatorAction()
  • removed: ctor JMXConfiguratorAction()
  • removed: method ConfigurationAction.begin(InterpretationContext, String, Attributes): void
  • removed: method ConfigurationAction.end(InterpretationContext, String): void
  • removed: method ContextNameAction.begin(InterpretationContext, String, Attributes): void
  • removed: method ContextNameAction.body(InterpretationContext, String): void
  • removed: method ContextNameAction.end(InterpretationContext, String): void
  • removed: method EvaluatorAction.defaultClassName(): String
  • removed: method InsertFromJNDIAction.begin(InterpretationContext, String, Attributes): void
  • removed: method InsertFromJNDIAction.end(InterpretationContext, String): void
  • removed: method JMXConfiguratorAction.begin(InterpretationContext, String, Attributes): void
  • removed: method JMXConfiguratorAction.end(InterpretationContext, String): void
  • removed: method LevelAction.begin(InterpretationContext, String, Attributes): void
  • removed: method LevelAction.end(InterpretationContext, String): void
  • removed: method LevelAction.finish(InterpretationContext): void
  • removed: method LoggerAction.begin(InterpretationContext, String, Attributes): void
  • removed: method LoggerAction.end(InterpretationContext, String): void
  • removed: method LoggerAction.finish(InterpretationContext): void
  • removed: method LoggerContextListenerAction.begin(InterpretationContext, String, Attributes): void
  • removed: method LoggerContextListenerAction.end(InterpretationContext, String): void
  • removed: method RootLoggerAction.begin(InterpretationContext, String, Attributes): void
  • removed: method RootLoggerAction.end(InterpretationContext, String): void
  • removed: method RootLoggerAction.finish(InterpretationContext): void
  • removed: static field LoggerAction.LEVEL_ATTRIBUTE: String
  • changed: class ConfigurationAction extends Action → class ConfigurationAction extends BaseModelAction
  • changed: class ContextNameAction extends Action → class ContextNameAction extends BaseModelAction
  • changed: class InsertFromJNDIAction extends Action → class InsertFromJNDIAction extends BaseModelAction
  • changed: class LevelAction extends Action → class LevelAction extends BaseModelAction
  • changed: class LoggerAction extends Action → class LoggerAction extends BaseModelAction
  • changed: class LoggerContextListenerAction extends Action → class LoggerContextListenerAction extends BaseModelAction
  • changed: class RootLoggerAction extends Action → class RootLoggerAction extends BaseModelAction
  • changed: method ConsolePluginAction.begin(InterpretationContext, String, Attributes): void → method ConsolePluginAction.begin(SaxEventInterpretationContext, String, Attributes): void
  • changed: method ConsolePluginAction.end(InterpretationContext, String): void → method ConsolePluginAction.end(SaxEventInterpretationContext, String): void
  • added: class PropertiesConfiguratorAction extends ResourceAction
  • added: ctor PropertiesConfiguratorAction()
  • added: method ConfigurationAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method ContextNameAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method InsertFromJNDIAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method InsertFromJNDIAction.validPreconditions(SaxEventInterpretationContext, String, Attributes): boolean
  • added: method LevelAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method LevelAction.validPreconditions(SaxEventInterpretationContext, String, Attributes): boolean
  • added: method LoggerAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method LoggerAction.validPreconditions(SaxEventInterpretationContext, String, Attributes): boolean
  • added: method LoggerContextListenerAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method LoggerContextListenerAction.validPreconditions(SaxEventInterpretationContext, String, Attributes): boolean
  • added: method PropertiesConfiguratorAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method PropertiesConfiguratorAction.makeNewResourceModel(): PropertiesConfiguratorModel
  • added: method RootLoggerAction.buildCurrentModel(SaxEventInterpretationContext, String, Attributes): Model
  • added: method RootLoggerAction.validPreconditions(SaxEventInterpretationContext, String, Attributes): boolean
  • added: class IfNestedWithinSecondPhaseElementSC extends ContextAwareBase implements SanityChecker
  • added: ctor IfNestedWithinSecondPhaseElementSC()
  • added: method IfNestedWithinSecondPhaseElementSC.check(Model): void
  • added: method IfNestedWithinSecondPhaseElementSC.toString(): String
  • added: static field IfNestedWithinSecondPhaseElementSC.NESTED_IF_WARNING_URL: String
  • added: class HardenedModelInputStream extends HardenedObjectInputStream
  • added: ctor HardenedModelInputStream(Context, InputStream)
  • added: static method HardenedModelInputStream.getWhilelist(): List
  • added: class TTLLLayout extends LayoutBase
  • added: ctor TTLLLayout()
  • added: method TTLLLayout.doLayout(ILoggingEvent): String
  • added: method TTLLLayout.start(): void
  • added: class ConfigurationModel extends Model
  • added: class ContextNameModel extends NamedModel
  • added: class LevelModel extends Model
  • added: class LoggerContextListenerModel extends ComponentModel
  • added: class LoggerModel extends Model
  • added: class PropertiesConfiguratorModel extends ResourceModel
  • added: class ReceiverModel extends ComponentModel
  • added: class RootLoggerModel extends Model
  • added: ctor ConfigurationModel()
  • added: ctor ContextNameModel()
  • added: ctor LevelModel()
  • added: ctor LoggerContextListenerModel()
  • added: ctor LoggerModel()
  • added: ctor PropertiesConfiguratorModel()
  • added: ctor ReceiverModel()
  • added: ctor RootLoggerModel()
  • added: method ConfigurationModel.equals(Object): boolean
  • added: method ConfigurationModel.getDebugStr(): String
  • added: method ConfigurationModel.getPackagingDataStr(): String
  • added: method ConfigurationModel.getScanPeriodStr(): String
  • added: method ConfigurationModel.getScanStr(): String
  • added: method ConfigurationModel.hashCode(): int
  • added: method ConfigurationModel.makeNewInstance(): ConfigurationModel
  • added: method ConfigurationModel.mirror(Model): void
  • added: method ConfigurationModel.setDebugStr(String): void
  • added: method ConfigurationModel.setPackagingDataStr(String): void
  • added: method ConfigurationModel.setScanPeriodStr(String): void
  • added: method ConfigurationModel.setScanStr(String): void
  • added: method ContextNameModel.makeNewInstance(): ContextNameModel
  • added: method LevelModel.equals(Object): boolean
  • added: method LevelModel.getValue(): String
  • added: method LevelModel.hashCode(): int
  • added: method LevelModel.makeNewInstance(): LevelModel
  • added: method LevelModel.mirror(Model): void
  • added: method LevelModel.setValue(String): void
  • added: method LoggerContextListenerModel.makeNewInstance(): LoggerContextListenerModel
  • added: method LoggerModel.equals(Object): boolean
  • added: method LoggerModel.getAdditivity(): String
  • added: method LoggerModel.getLevel(): String
  • added: method LoggerModel.getName(): String
  • added: method LoggerModel.hashCode(): int
  • added: method LoggerModel.makeNewInstance(): LoggerModel
  • added: method LoggerModel.mirror(Model): void
  • added: method LoggerModel.setAdditivity(String): void
  • added: method LoggerModel.setLevel(String): void
  • added: method LoggerModel.setName(String): void
  • added: method LoggerModel.toString(): String
  • added: method PropertiesConfiguratorModel.getScanStr(): String
  • added: method PropertiesConfiguratorModel.setScanStr(String): void
  • added: method ReceiverModel.makeNewInstance(): ReceiverModel
  • added: method RootLoggerModel.equals(Object): boolean
  • added: method RootLoggerModel.getLevel(): String
  • added: method RootLoggerModel.hashCode(): int
  • added: method RootLoggerModel.makeNewInstance(): RootLoggerModel
  • added: method RootLoggerModel.mirror(Model): void
  • added: method RootLoggerModel.setLevel(String): void
  • added: class CallerContradictionAnalyser extends ModelHandlerBase
  • added: class CallerContradictionWarnAnalyser extends ModelHandlerBase
  • added: class CallerInstructionLogic
  • added: class ConfigurationModelHandler extends ModelHandlerBase
  • added: class ConfigurationModelHandlerFull extends ConfigurationModelHandler
  • added: class ContextNameModelHandler extends ModelHandlerBase
  • added: class LevelModelHandler extends ModelHandlerBase
  • added: class LogbackClassicDefaultNestedComponentRules
  • added: class LoggerContextListenerModelHandler extends ModelHandlerBase
  • added: class LoggerModelHandler extends ModelHandlerBase
  • added: class PropertiesConfiguratorModelHandler extends ResourceHandlerBase
  • added: class RootLoggerModelHandler extends ModelHandlerBase
  • added: ctor CallerContradictionAnalyser(Context)
  • added: ctor CallerContradictionWarnAnalyser(Context)
  • added: ctor CallerInstructionLogic()
  • added: ctor ConfigurationModelHandler(Context)
  • added: ctor ConfigurationModelHandlerFull(Context)
  • added: ctor ContextNameModelHandler(Context)
  • added: ctor LevelModelHandler(Context)
  • added: ctor LogbackClassicDefaultNestedComponentRules()
  • added: ctor LoggerContextListenerModelHandler(Context)
  • added: ctor LoggerModelHandler(Context)
  • added: ctor PropertiesConfiguratorModelHandler(Context)
  • added: ctor RootLoggerModelHandler(Context)
  • added: field ConfigurationModelHandler.scanning: Boolean
  • added: method CallerContradictionAnalyser.getSupportedModelClass(): Class
  • added: method CallerContradictionAnalyser.handle(ModelInterpretationContext, Model): void
  • added: method CallerContradictionWarnAnalyser.getSupportedModelClass(): Class
  • added: method CallerContradictionWarnAnalyser.handle(ModelInterpretationContext, Model): void
  • added: method CallerContradictionWarnAnalyser.postHandle(ModelInterpretationContext, Model): void
  • added: method CallerInstructionLogic.contradiction(Map): List
  • added: method ConfigurationModelHandler.getSupportedModelClass(): Class
  • added: method ConfigurationModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method ConfigurationModelHandler.postHandle(ModelInterpretationContext, Model): void
  • added: method ConfigurationModelHandlerFull.detachedPostProcess(String): void
  • added: method ConfigurationModelHandlerFull.detachedPostProcess(String, String): void
  • added: method ConfigurationModelHandlerFull.postHandle(ModelInterpretationContext, Model): void
  • added: method ContextNameModelHandler.getSupportedModelClass(): Class
  • added: method ContextNameModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method LevelModelHandler.getSupportedModelClass(): Class
  • added: method LevelModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method LoggerContextListenerModelHandler.getSupportedModelClass(): Class
  • added: method LoggerContextListenerModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method LoggerContextListenerModelHandler.postHandle(ModelInterpretationContext, Model): void
  • added: method LoggerModelHandler.getSupportedModelClass(): Class
  • added: method LoggerModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method LoggerModelHandler.postHandle(ModelInterpretationContext, Model): void
  • added: method PropertiesConfiguratorModelHandler.detachedHandle(ContextAwarePropertyContainer, Model, Boolean): void
  • added: method PropertiesConfiguratorModelHandler.getInputStream(ContextAwarePropertyContainer, ResourceModel): InputStream
  • added: method PropertiesConfiguratorModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method RootLoggerModelHandler.getSupportedModelClass(): Class
  • added: method RootLoggerModelHandler.handle(ModelInterpretationContext, Model): void
  • added: method RootLoggerModelHandler.postHandle(ModelInterpretationContext, Model): void
  • added: static field CallerContradictionAnalyser.SKIP_CALLER_CONTRADICTION_ANALYSIS_PROPERTY: String
  • added: static field ConfigurationModelHandlerFull.FAILED_WATCH_PREDICATE_MESSAGE_1: String
  • added: static field ConfigurationModelHandlerFull.FAILED_WATCH_PREDICATE_MESSAGE_2: String
  • added: static field LogbackClassicDefaultNestedComponentRules.TUPLES_LIST: List
  • added: static method ConfigurationModelHandler.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method ConfigurationModelHandlerFull.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method ContextNameModelHandler.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method LevelModelHandler.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method LogbackClassicDefaultNestedComponentRules.addDefaultNestedComponentRegistryRules(DefaultNestedComponentRegistry): void
  • added: static method LogbackClassicDefaultNestedComponentRules.createTuplesList(): List
  • added: static method LoggerContextListenerModelHandler.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method LoggerModelHandler.makeInstance(Context, ModelInterpretationContext): ModelHandlerBase
  • added: static method PropertiesConfiguratorModelHandler.makeInstance(Context, ModelInterpretationContext): PropertiesConfiguratorModelHandler
  • added: static method RootLoggerModelHandler.makeInstance(Context, ModelInterpretationContext): RootLoggerModelHandler
  • added: class DefaultClassNameHelper
  • added: ctor DefaultClassNameHelper()
  • added: method DefaultClassNameHelper.injectDefaultComponentClasses(Model, Model): void
  • removed: class JMSQueueAppender extends JMSAppenderBase
  • removed: class JMSQueueSink implements MessageListener
  • removed: class JMSTopicAppender extends JMSAppenderBase
  • removed: class JMSTopicSink implements MessageListener
  • removed: ctor JMSQueueAppender()
  • removed: ctor JMSQueueSink(String, String, String, String)
  • removed: ctor JMSTopicAppender()
  • removed: ctor JMSTopicSink(String, String, String, String)
  • removed: ctor SocketAppender(InetAddress, int)
  • removed: ctor SocketAppender(String, int)
  • removed: method JMSQueueAppender.append(ILoggingEvent): void
  • removed: method JMSQueueAppender.getQueueBindingName(): String
  • removed: method JMSQueueAppender.getQueueConnection(): QueueConnection
  • removed: method JMSQueueAppender.getQueueConnectionFactoryBindingName(): String
  • removed: method JMSQueueAppender.getQueueSender(): QueueSender
  • removed: method JMSQueueAppender.getQueueSession(): QueueSession
  • removed: method JMSQueueAppender.setQueueBindingName(String): void
  • removed: method JMSQueueAppender.setQueueConnectionFactoryBindingName(String): void
  • removed: method JMSQueueAppender.start(): void
  • removed: method JMSQueueAppender.stop(): void
  • removed: method JMSQueueSink.lookup(Context, String): Object
  • removed: method JMSQueueSink.onMessage(Message): void
  • removed: method JMSTopicAppender.append(ILoggingEvent): void
  • removed: method JMSTopicAppender.getTopicBindingName(): String
  • removed: method JMSTopicAppender.getTopicConnection(): TopicConnection
  • removed: method JMSTopicAppender.getTopicConnectionFactoryBindingName(): String
  • removed: method JMSTopicAppender.getTopicPublisher(): TopicPublisher
  • removed: method JMSTopicAppender.getTopicSession(): TopicSession
  • removed: method JMSTopicAppender.setTopicBindingName(String): void
  • removed: method JMSTopicAppender.setTopicConnectionFactoryBindingName(String): void
  • removed: method JMSTopicAppender.start(): void
  • removed: method JMSTopicAppender.stop(): void
  • removed: method JMSTopicSink.lookup(Context, String): Object
  • removed: method JMSTopicSink.onMessage(Message): void
  • removed: method SMTPAppender.isEventMarkedForBufferRemoval(ILoggingEvent): boolean
  • removed: static method JMSQueueSink.main(String[]): void
  • removed: static method JMSTopicSink.main(String[]): void
  • changed: class SocketAppender extends SocketAppenderBase → class SocketAppender extends AbstractSocketAppender
  • changed: method SyslogAppender.buildLayout(String): Layout → method SyslogAppender.buildLayout(): Layout
  • added: class SSLSocketAppender extends AbstractSSLSocketAppender
  • added: class SimpleSSLSocketServer extends SimpleSocketServer
  • added: ctor SSLSocketAppender()
  • added: ctor SimpleSSLSocketServer(LoggerContext, int)
  • added: ctor SimpleSSLSocketServer(LoggerContext, int, SSLContext)
  • added: method SMTPAppender.eventMarksEndOfLife(ILoggingEvent): boolean
  • added: method SMTPAppender.isIncludeCallerData(): boolean
  • added: method SMTPAppender.setIncludeCallerData(boolean): void
  • added: method SSLSocketAppender.getPST(): PreSerializationTransformer
  • added: method SSLSocketAppender.postProcessEvent(ILoggingEvent): void
  • added: method SSLSocketAppender.setIncludeCallerData(boolean): void
  • added: method SimpleSSLSocketServer.getServerSocketFactory(): ServerSocketFactory
  • added: method SimpleSocketServer.addAllowedClientAddress(String): void
  • added: method SimpleSocketServer.getClientThreadName(Socket): String
  • added: method SimpleSocketServer.getLatch(): CountDownLatch
  • added: method SimpleSocketServer.getServerSocketFactory(): ServerSocketFactory
  • added: method SimpleSocketServer.getServerThreadName(): String
  • added: method SimpleSocketServer.isClientAllowed(InetAddress): boolean
  • added: method SimpleSocketServer.setAllowedClientAddresses(Collection): void
  • added: method SyslogAppender.createOutputStream(): SyslogOutputStream
  • added: method SyslogAppender.getStackTracePattern(): String
  • added: method SyslogAppender.isThrowableExcluded(): boolean
  • added: method SyslogAppender.setStackTracePattern(String): void
  • added: method SyslogAppender.setThrowableExcluded(boolean): void
  • added: method SyslogAppender.start(): void
  • added: static field SyslogAppender.DEFAULT_STACKTRACE_PATTERN: String
  • added: static method SimpleSSLSocketServer.main(String[]): void
  • added: static method SimpleSocketServer.doMain(Class, String[]): void
  • added: class HardenedLoggingEventInputStream extends HardenedObjectInputStream
  • added: ctor HardenedLoggingEventInputStream(LoggerContext, InputStream)
  • added: ctor HardenedLoggingEventInputStream(LoggerContext, InputStream, List)
  • added: static method HardenedLoggingEventInputStream.getWhilelist(): List
  • changed: method EnsureExceptionHandling.process(Converter): void → method EnsureExceptionHandling.process(Context, Converter): void
  • added: class EpochConverter extends ClassicConverter
  • added: class KeyValuePairConverter extends ClassicConverter
  • added: class LocalSequenceNumberConverter extends ClassicConverter
  • added: class MaskedKeyValuePairConverter extends ClassicConverter
  • added: class MicrosecondConverter extends ClassicConverter
  • added: class PrefixCompositeConverter extends CompositeConverter
  • added: class SequenceNumberConverter extends ClassicConverter
  • added: class TargetLengthBasedClassNameAbbreviator2 implements Abbreviator
  • added: ctor EpochConverter()
  • added: ctor KeyValuePairConverter()
  • added: ctor LocalSequenceNumberConverter()
  • added: ctor MaskedKeyValuePairConverter()
  • added: ctor MicrosecondConverter()
  • added: ctor PrefixCompositeConverter()
  • added: ctor SequenceNumberConverter()
  • added: ctor TargetLengthBasedClassNameAbbreviator2(int)
  • added: method CallerDataConverter.getCallerLinePrefix(): String
  • added: method CallerDataConverter.getDefaultRangeDelimiter(): String
  • added: method EnsureExceptionHandling.compositeHandlesThrowable(CompositeConverter): boolean
  • added: method EpochConverter.convert(ILoggingEvent): String
  • added: method EpochConverter.start(): void
  • added: method KeyValuePairConverter.convert(ILoggingEvent): String
  • added: method KeyValuePairConverter.start(): void
  • added: method LocalSequenceNumberConverter.convert(ILoggingEvent): String
  • added: method MDCConverter.getKey(): String
  • added: method MaskedKeyValuePairConverter.convert(ILoggingEvent): String
  • added: method MaskedKeyValuePairConverter.start(): void
  • added: method MicrosecondConverter.convert(ILoggingEvent): String
  • added: method NamedConverter.getCacheMissRate(): double
  • added: method NamedConverter.getCacheMisses(): int
  • added: method PrefixCompositeConverter.convert(ILoggingEvent): String
  • added: method PrefixCompositeConverter.transform(ILoggingEvent, String): String
  • added: method PropertyConverter.getKey(): String
  • added: method RootCauseFirstThrowableProxyConverter.recursiveAppendRootCauseFirst(StringBuilder, String, int, IThrowableProxy): void
  • added: method SequenceNumberConverter.convert(ILoggingEvent): String
  • added: method SequenceNumberConverter.start(): void
  • added: method TargetLengthBasedClassNameAbbreviator2.abbreviate(String): String
  • added: method ThrowableProxyConverter.subjoinSTEPArray(StringBuilder, int, IThrowableProxy): void
  • added: static field CallerDataConverter.DEFAULT_CALLER_LINE_PREFIX: String
  • added: static field CallerDataConverter.DEFAULT_RANGE_DELIMITER: String
  • added: static field MaskedKeyValuePairConverter.MASK: String
  • added: static field ThrowableProxyConverter.BUILDER_CAPACITY: int
  • added: class HighlightingCompositeConverter extends ForegroundCompositeConverterBase
  • added: ctor HighlightingCompositeConverter()
  • added: method HighlightingCompositeConverter.getForegroundColorCode(ILoggingEvent): String
  • added: class LogbackServletContainerInitializer implements ServletContainerInitializer
  • added: class LogbackServletContextListener implements ServletContextListener
  • added: ctor LogbackServletContainerInitializer()
  • added: ctor LogbackServletContextListener()
  • added: method LogbackServletContainerInitializer.onStartup(Set, ServletContext): void
  • added: method LogbackServletContextListener.contextDestroyed(ServletContextEvent): void
  • added: method LogbackServletContextListener.contextInitialized(ServletContextEvent): void
  • removed: class AppenderFactory extends AppenderFactoryBase
  • removed: class GSiftingAppender extends AppenderBase implements ConfigurationContributor, GroovyObject
  • removed: class SiftAction extends Action implements InPlayListener
  • removed: class SiftingJoranConfigurator extends SiftingJoranConfiguratorBase
  • removed: class ZSiftingDelegate extends ContextAwareBase implements GroovyObject
  • removed: ctor GSiftingAppender()
  • removed: ctor SiftAction()
  • removed: ctor ZSiftingDelegate(String, String)
  • removed: field GSiftingAppender.appenderTracker: AppenderTracker
  • removed: method AppenderFactory.getSiftingJoranConfigurator(String): SiftingJoranConfiguratorBase
  • removed: method ContextBasedDiscriminator.isStarted(): boolean
  • removed: method ContextBasedDiscriminator.start(): void
  • removed: method ContextBasedDiscriminator.stop(): void
  • removed: method GSiftingAppender.append(Object): void
  • removed: method GSiftingAppender.build(): void
  • removed: method GSiftingAppender.buildAppender(String): Appender
  • removed: method GSiftingAppender.buildNOPAppender(String): NOPAppender
  • removed: method GSiftingAppender.getAppenderTracker(): AppenderTracker
  • removed: method GSiftingAppender.getBuilderClosure(): Closure
  • removed: method GSiftingAppender.getDiscriminator(): Discriminator
  • removed: method GSiftingAppender.getDiscriminatorKey(): String
  • removed: method GSiftingAppender.getMappings(): Map
  • removed: method GSiftingAppender.getNopaWarningCount(): int
  • removed: method GSiftingAppender.getTimestamp(ILoggingEvent): long
  • removed: method GSiftingAppender.setBuilderClosure(Closure): void
  • removed: method GSiftingAppender.setDiscriminator(Discriminator): void
  • removed: method GSiftingAppender.setNopaWarningCount(int): void
  • removed: method GSiftingAppender.sift(Closure): void
  • removed: method GSiftingAppender.start(): void
  • removed: method GSiftingAppender.stop(): void
  • removed: method JNDIBasedContextDiscriminator.isStarted(): boolean
  • removed: method JNDIBasedContextDiscriminator.start(): void
  • removed: method JNDIBasedContextDiscriminator.stop(): void
  • removed: method MDCBasedDiscriminator.isStarted(): boolean
  • removed: method MDCBasedDiscriminator.stop(): void
  • removed: method SiftAction.begin(InterpretationContext, String, Attributes): void
  • removed: method SiftAction.end(InterpretationContext, String): void
  • removed: method SiftAction.getSeList(): List
  • removed: method SiftAction.inPlay(SaxEvent): void
  • removed: method SiftingJoranConfigurator.addDefaultNestedComponentRegistryRules(DefaultNestedComponentRegistry): void
  • removed: method SiftingJoranConfigurator.addInstanceRules(RuleStore): void
  • removed: method SiftingJoranConfigurator.buildInterpreter(): void
  • removed: method SiftingJoranConfigurator.getAppender(): Appender
  • removed: method SiftingJoranConfigurator.initialPattern(): Pattern
  • removed: method ZSiftingDelegate.appender(String, Class): Appender
  • removed: method ZSiftingDelegate.appender(String, Class, Closure): Appender
  • removed: method ZSiftingDelegate.getKey(): String
  • removed: method ZSiftingDelegate.getValue(): String
  • removed: method ZSiftingDelegate.setKey(String): void
  • removed: method ZSiftingDelegate.setValue(String): void
  • changed: class ContextBasedDiscriminator extends ContextAwareBase implements Discriminator → class ContextBasedDiscriminator extends AbstractDiscriminator
  • changed: class JNDIBasedContextDiscriminator extends ContextAwareBase implements Discriminator → class JNDIBasedContextDiscriminator extends AbstractDiscriminator
  • changed: class MDCBasedDiscriminator extends ContextAwareBase implements Discriminator → class MDCBasedDiscriminator extends AbstractDiscriminator
  • added: method SiftingAppender.eventMarksEndOfLife(ILoggingEvent): boolean
  • removed: method LoggingEvent.getMarker(): Marker
  • removed: method LoggingEvent.setMarker(Marker): void
  • removed: method LoggingEventVO.getMarker(): Marker
  • removed: static field CallerData.NA: String
  • removed: static method CallerData.isDirectlyInvokingClass(String, String): boolean
  • changed: static method CallerData.extract(Throwable, String, int): StackTraceElement[] → static method CallerData.extract(Throwable, String, int, List): StackTraceElement[]
  • added: @interface ConfiguratorRank
  • added: class EventArgUtil
  • added: class LogbackServiceProvider implements SLF4JServiceProvider
  • added: class ThrowableProxyVOBuilder
  • added: ctor ClassPackagingData()
  • added: ctor EventArgUtil()
  • added: ctor LogbackServiceProvider()
  • added: ctor LoggerContextVO()
  • added: ctor ThrowableProxy(Throwable, Set)
  • added: ctor ThrowableProxyVOBuilder()
  • added: enum Configurator.ExecutionStatus
  • added: field LoggerContextVO.birthTime: long
  • added: field LoggerContextVO.name: String
  • added: field LoggerContextVO.propertyMap: Map
  • added: interface Configurator extends ContextAware
  • added: method ClassPackagingData.setCodeLocation(String): void
  • added: method ClassPackagingData.setExact(boolean): void
  • added: method ClassPackagingData.setVersion(String): void
  • added: method Configurator.configure(LoggerContext): Configurator.ExecutionStatus
  • added: method ConfiguratorRank.value(): int
  • added: method ILoggingEvent.getInstant(): Instant
  • added: method ILoggingEvent.getKeyValuePairs(): List
  • added: method ILoggingEvent.getMarkerList(): List
  • added: method ILoggingEvent.getNanoseconds(): int
  • added: method ILoggingEvent.getSequenceNumber(): long
  • added: method IThrowableProxy.getOverridingMessage(): String
  • added: method IThrowableProxy.getSuppressed(): IThrowableProxy[]
  • added: method IThrowableProxy.isCyclic(): boolean
  • added: method LogbackServiceProvider.getLoggerFactory(): ILoggerFactory
  • added: method LogbackServiceProvider.getMDCAdapter(): MDCAdapter
  • added: method LogbackServiceProvider.getMarkerFactory(): IMarkerFactory
  • added: method LogbackServiceProvider.getRequestedApiVersion(): String
  • added: method LogbackServiceProvider.initialize(): void
  • added: method LoggerContextVO.equals(Object): boolean
  • added: method LoggerContextVO.hashCode(): int
  • added: method LoggerContextVO.toString(): String
  • added: method LoggingEvent.addKeyValuePair(KeyValuePair): void
  • added: method LoggingEvent.addMarker(Marker): void
  • added: method LoggingEvent.getInstant(): Instant
  • added: method LoggingEvent.getKeyValuePairs(): List
  • added: method LoggingEvent.getMarkerList(): List
  • added: method LoggingEvent.getNanoseconds(): int
  • added: method LoggingEvent.getSequenceNumber(): long
  • added: method LoggingEvent.setInstant(Instant): void
  • added: method LoggingEvent.setKeyValuePairs(List): void
  • added: method LoggingEvent.setLoggerContext(LoggerContext): void
  • added: method LoggingEvent.setMDCPropertyMap(Map): void
  • added: method LoggingEvent.setSequenceNumber(long): void
  • added: method LoggingEventVO.getKeyValuePairs(): List
  • added: method LoggingEventVO.getMarkerList(): List
  • added: method LoggingEventVO.getNanoseconds(): int
  • added: method LoggingEventVO.getSequenceNumber(): long
  • added: method ThrowableProxy.getOverridingMessage(): String
  • added: method ThrowableProxy.getSuppressed(): IThrowableProxy[]
  • added: method ThrowableProxy.isCyclic(): boolean
  • added: method ThrowableProxyVO.getOverridingMessage(): String
  • added: method ThrowableProxyVO.getSuppressed(): IThrowableProxy[]
  • added: method ThrowableProxyVO.isCyclic(): boolean
  • added: method ThrowableProxyVOBuilder.build(): ThrowableProxyVO
  • added: method ThrowableProxyVOBuilder.setCause(IThrowableProxy): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setClassName(String): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setCommonFramesCount(int): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setCyclic(boolean): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setMessage(String): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setOverridingMessage(String): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setStackTraceElementProxyArray(StackTraceElementProxy[]): ThrowableProxyVOBuilder
  • added: method ThrowableProxyVOBuilder.setSuppressed(IThrowableProxy[]): ThrowableProxyVOBuilder
  • added: method TurboFilterList.getTurboFilterChainDecision(Logger, LoggingEvent): FilterReply
  • added: static field Configurator.ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY: Configurator.ExecutionStatus
  • added: static field Configurator.ExecutionStatus.INVOKE_NEXT_IF_ANY: Configurator.ExecutionStatus
  • added: static field Configurator.ExecutionStatus.NEUTRAL: Configurator.ExecutionStatus
  • added: static field ConfiguratorRank.AUTHENTICATING: int
  • added: static field ConfiguratorRank.CUSTOM_HIGH_PRIORITY: int
  • added: static field ConfiguratorRank.CUSTOM_LOW_PRIORITY: int
  • added: static field ConfiguratorRank.CUSTOM_NORMAL_PRIORITY: int
  • added: static field ConfiguratorRank.CUSTOM_TOP_PRIORITY: int
  • added: static field ConfiguratorRank.DEFAULT: int
  • added: static field ConfiguratorRank.FALLBACK: int
  • added: static field ConfiguratorRank.NOMINAL: int
  • added: static field ConfiguratorRank.SERIALIZED_MODEL: int
  • added: static field LogbackServiceProvider.REQUESTED_API_VERSION: String
  • added: static field LoggingEvent.REGULAR_UNNAMED_THREAD_PREFIX: String
  • added: static field LoggingEvent.VIRTUAL_THREAD_NAME_PREFIX: String
  • added: static field ThrowableProxyUtil.REGULAR_EXCEPTION_INDENT: int
  • added: static field ThrowableProxyUtil.SUPPRESSED_EXCEPTION_INDENT: int
  • added: static method CallerData.naInstance(): StackTraceElement
  • added: static method Configurator.ExecutionStatus.valueOf(String): Configurator.ExecutionStatus
  • added: static method Configurator.ExecutionStatus.values(): Configurator.ExecutionStatus[]
  • added: static method EventArgUtil.arrangeArguments(Object[]): Object[]
  • added: static method EventArgUtil.extractThrowable(Object[]): Throwable
  • added: static method EventArgUtil.successfulExtraction(Throwable): boolean
  • added: static method EventArgUtil.trimmedCopy(Object[]): Object[]
  • added: static method ThrowableProxyUtil.appendNominalFirstLine(StringBuilder, String, String): void
  • added: static method ThrowableProxyUtil.indent(StringBuilder, int): void
  • added: static method ThrowableProxyUtil.subjoinExceptionMessage(StringBuilder, IThrowableProxy): void
  • added: static method ThrowableProxyUtil.subjoinSTEPArray(StringBuilder, int, IThrowableProxy): void
  • added: static method ThrowableProxyVO.builder(): ThrowableProxyVOBuilder
  • removed: class ReconfigureOnChangeFilter extends TurboFilter
  • removed: ctor ReconfigureOnChangeFilter()
  • removed: method ReconfigureOnChangeFilter.changeDetected(): boolean
  • removed: method ReconfigureOnChangeFilter.decide(Marker, Logger, Level, String, Object[], Throwable): FilterReply
  • removed: method ReconfigureOnChangeFilter.getRefreshPeriod(): long
  • removed: method ReconfigureOnChangeFilter.setRefreshPeriod(long): void
  • removed: method ReconfigureOnChangeFilter.start(): void
  • removed: method ReconfigureOnChangeFilter.toString(): String
  • removed: static field ReconfigureOnChangeFilter.DEFAULT_REFRESH_PERIOD: long
  • added: method MDCFilter.start(): void
  • added: method TurboFilter.decide(Logger, LoggingEvent): FilterReply
  • added: class TylerConfiguratorBase extends ContextAwareBase implements ContextAwarePropertyContainer
  • added: class VariableModelHelper extends ContextAwareBase
  • added: ctor TylerConfiguratorBase()
  • added: field TylerConfiguratorBase.propertyModelHandlerHelper: PropertyModelHandlerHelper
  • added: field TylerConfiguratorBase.variableSubstitutionsHelper: VariableSubstitutionsHelper
  • added: method TylerConfiguratorBase.addOnConsoleStatusListener(): void
  • added: method TylerConfiguratorBase.addSubstitutionProperty(String, String): void
  • added: method TylerConfiguratorBase.getConfiguratorSupplier(): Supplier
  • added: method TylerConfiguratorBase.getCopyOfPropertyMap(): Map
  • added: method TylerConfiguratorBase.getProperty(String): String
  • added: method TylerConfiguratorBase.isDefined(String): boolean
  • added: method TylerConfiguratorBase.isNull(String): boolean
  • added: method TylerConfiguratorBase.p(String): String
  • added: method TylerConfiguratorBase.processModelFromIncludedFile(Model): void
  • added: method TylerConfiguratorBase.property(String): String
  • added: method TylerConfiguratorBase.setContext(Context): void
  • added: method TylerConfiguratorBase.setContextName(String): void
  • added: method TylerConfiguratorBase.setupLogger(String, String, Boolean): Logger
  • added: method TylerConfiguratorBase.subst(String): String
  • added: method VariableModelHelper.setProperties(Properties, ActionUtil.Scope): void
  • added: method VariableModelHelper.setProperty(String, String, ActionUtil.Scope): void
  • added: static field TylerConfiguratorBase.PROPERTY_MODEL_HANDLER_HELPER_FIELD_NAME: String
  • added: static field TylerConfiguratorBase.SETUP_LOGGER_METHOD_NAME: String
  • added: static field TylerConfiguratorBase.SET_CONTEXT_METHOD_NAME: String
  • added: static field TylerConfiguratorBase.SET_CONTEXT_NAME_METHOD_NAME: String
  • added: static field TylerConfiguratorBase.VARIABLE_SUBSTITUTIONS_HELPER_FIELD_NAME: String
  • removed: class DefaultNestedComponentRules
  • removed: class EnvUtil
  • removed: class JNDIUtil
  • removed: class StatusListenerConfigHelper
  • removed: ctor DefaultNestedComponentRules()
  • removed: ctor EnvUtil()
  • removed: ctor JNDIUtil()
  • removed: ctor StatusListenerConfigHelper()
  • removed: method ContextInitializer.configureByResource(URL): void
  • removed: method ContextInitializer.findURLOfDefaultConfigurationFile(boolean): URL
  • removed: static field ContextInitializer.GROOVY_AUTOCONFIG_FILE: String
  • removed: static field ContextInitializer.STATUS_LISTENER_CLASS: String
  • removed: static field ContextInitializer.SYSOUT: String
  • removed: static method DefaultNestedComponentRules.addDefaultNestedComponentRegistryRules(DefaultNestedComponentRegistry): void
  • removed: static method EnvUtil.isGroovyAvailable(): boolean
  • removed: static method JNDIUtil.getInitialContext(): Context
  • removed: static method JNDIUtil.lookup(Context, String): String
  • changed: final class LogbackMDCAdapter implements MDCAdapter → class LogbackMDCAdapter implements MDCAdapter
  • added: class ClassicEnvUtil
  • added: class ClassicVersionUtil
  • added: class DefaultJoranConfigurator extends ContextAwareBase implements Configurator
  • added: class LevelUtil
  • added: class LoggerNameUtil
  • added: class StatusViaSLF4JLoggerFactory
  • added: ctor ClassicEnvUtil()
  • added: ctor ClassicVersionUtil()
  • added: ctor DefaultJoranConfigurator()
  • added: ctor LevelUtil()
  • added: ctor LoggerNameUtil()
  • added: ctor StatusViaSLF4JLoggerFactory()
  • added: method ContextInitializer.autoConfig(ClassLoader): void
  • added: method DefaultJoranConfigurator.configure(LoggerContext): Configurator.ExecutionStatus
  • added: method DefaultJoranConfigurator.configureByResource(URL): void
  • added: method DefaultJoranConfigurator.findURLOfDefaultConfigurationFile(boolean): URL
  • added: method DefaultJoranConfigurator.performMultiStepConfigurationFileSearch(boolean): URL
  • added: method LogbackMDCAdapter.clearDequeByKey(String): void
  • added: method LogbackMDCAdapter.getCopyOfDequeByKey(String): Deque
  • added: method LogbackMDCAdapter.popByKey(String): String
  • added: method LogbackMDCAdapter.pushByKey(String, String): void
  • added: static method ClassicEnvUtil.isGroovyAvailable(): boolean
  • added: static method ClassicEnvUtil.loadFromServiceLoader(Class, ClassLoader): List
  • added: static method ClassicVersionUtil.getVersionBySelfDeclaredProperties(): String
  • added: static method LevelUtil.isInheritedLevelString(String): boolean
  • added: static method LevelUtil.levelStringToLevel(String): Level
  • added: static method LoggerNameUtil.computeNameParts(String): List
  • added: static method LoggerNameUtil.getFirstSeparatorIndexOf(String): int
  • added: static method LoggerNameUtil.getSeparatorIndexOf(String, int): int
  • added: static method StatusViaSLF4JLoggerFactory.addError(String, Object): void
  • added: static method StatusViaSLF4JLoggerFactory.addError(String, Object, Throwable): void
  • added: static method StatusViaSLF4JLoggerFactory.addInfo(String, Object): void
  • added: static method StatusViaSLF4JLoggerFactory.addStatus(Status): void
  • removed: class StaticLoggerBinder implements LoggerFactoryBinder
  • removed: class StaticMDCBinder
  • removed: class StaticMarkerBinder implements MarkerFactoryBinder
  • removed: method StaticLoggerBinder.getLoggerFactory(): ILoggerFactory
  • removed: method StaticLoggerBinder.getLoggerFactoryClassStr(): String
  • removed: method StaticMDCBinder.getMDCA(): MDCAdapter
  • removed: method StaticMDCBinder.getMDCAdapterClassStr(): String
  • removed: method StaticMarkerBinder.getMarkerFactory(): IMarkerFactory
  • removed: method StaticMarkerBinder.getMarkerFactoryClassStr(): String
  • removed: static field StaticLoggerBinder.REQUESTED_API_VERSION: String
  • removed: static field StaticMDCBinder.SINGLETON: StaticMDCBinder
  • removed: static field StaticMarkerBinder.SINGLETON: StaticMarkerBinder
  • removed: static method StaticLoggerBinder.getSingleton(): StaticLoggerBinder