Class UnsynchronizedAppenderBase<E>
java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.UnsynchronizedAppenderBase<E>
- All Implemented Interfaces:
Appender<E>, ContextAware, FilterAttachable<E>, LifeCycle
- Direct Known Subclasses:
AsyncAppenderBase, OutputStreamAppender
Similar to
AppenderBase except that derived appenders need to handle thread
synchronization on their own.- Author:
- Ceki Gülcü, Ralph Goers
-
Field Summary
FieldsFields inherited from class ContextAwareBase
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a filter.protected abstract voidprotected ReentryGuardCreate aReentryGuardinstance used by this appender to prevent recursive/re-entrant calls todoAppend(Object).voidvoidThis is where an appender accomplishes its work: format and deliver the provided event to the appender's destination.Get a copy of all the filters contained within this FilterAttachable object.getFilterChainDecision(E event) Loop through the filters in the chain.getName()Get the name of this appender.booleanvoidSet the name of this appender.voidstart()voidstop()toString()Methods inherited from class ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContextMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ContextAware
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
-
Field Details
-
started
-
name
-
-
Constructor Details
-
UnsynchronizedAppenderBase
public UnsynchronizedAppenderBase()
-
-
Method Details
-
getName
-
doAppend
Description copied from interface:AppenderThis is where an appender accomplishes its work: format and deliver the provided event to the appender's destination.Implementations should apply any configured filters before outputting the event. Implementations should avoid throwing runtime exceptions; if an error occurs that cannot be handled internally, a
LogbackException(or a subtype) may be thrown to indicate a failure during append. -
append
-
setName
-
start
-
buildReentryGuard
Create aReentryGuardinstance used by this appender to prevent recursive/re-entrant calls todoAppend(Object).The default implementation returns a no-op guard produced by
ReentryGuardFactory.makeGuard(ch.qos.logback.core.util.ReentryGuardFactory.GuardType)usingGuardType.NOP. Subclasses that require actual re-entry protection (for example using a thread-local or lock-based guard) should override this method to return an appropriateReentryGuardimplementation.Contract/expectations:
- Called from
start()to initialize the appender's guard. - Implementations should be lightweight and thread-safe.
- Return value must not be
null.
- Returns:
- a non-null
ReentryGuardused to detect and prevent re-entrant appends. By default, this is a no-op guard. - Since:
- 1.5.21
- Called from
-
stop
-
isStarted
-
toString
-
addFilter
Description copied from interface:FilterAttachableAdd a filter.- Specified by:
addFilterin interfaceFilterAttachable<E>
-
clearAllFilters
- Specified by:
clearAllFiltersin interfaceFilterAttachable<E>
-
getCopyOfAttachedFiltersList
Description copied from interface:FilterAttachableGet a copy of all the filters contained within this FilterAttachable object.- Specified by:
getCopyOfAttachedFiltersListin interfaceFilterAttachable<E>- Returns:
- all attached filters as a list
-
getFilterChainDecision
Description copied from interface:FilterAttachableLoop through the filters in the chain. As soon as a filter decides on ACCEPT or DENY, then that value is returned. If all of the filters return NEUTRAL, then NEUTRAL is returned.- Specified by:
getFilterChainDecisionin interfaceFilterAttachable<E>
-