Package ch.qos.logback.access.tomcat
Class LogbackValve
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.util.LifecycleMBeanBase
-
- org.apache.catalina.valves.ValveBase
-
- ch.qos.logback.access.tomcat.LogbackValve
-
- All Implemented Interfaces:
Context,AppenderAttachable<IAccessEvent>,FilterAttachable<IAccessEvent>,PropertyContainer,javax.management.MBeanRegistration,org.apache.catalina.Contained,org.apache.catalina.JmxEnabled,org.apache.catalina.Lifecycle,org.apache.catalina.Valve
public class LogbackValve extends org.apache.catalina.valves.ValveBase implements org.apache.catalina.Lifecycle, Context, AppenderAttachable<IAccessEvent>, FilterAttachable<IAccessEvent>
This class is an implementation of tomcat's Valve interface, by extending ValveBase.For more information on using LogbackValve please refer to the online documentation on logback-acces and tomcat.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) AppenderAttachableImpl<IAccessEvent>aai(package private) booleanalreadySetLogbackStatusManagerprivate longbirthTime(package private) static java.lang.StringCATALINA_BASE_KEY(package private) static java.lang.StringCATALINA_HOME_KEY(package private) LogbackLockconfigurationLockstatic java.lang.StringDEFAULT_CONFIG_FILEstatic java.lang.StringDEFAULT_FILENAMEprivate FilterAttachableImpl<IAccessEvent>fai(package private) java.lang.StringfilenameOptionprivate LifeCycleManagerlifeCycleManagerprivate java.lang.Stringname(package private) java.util.Map<java.lang.String,java.lang.Object>objectMap(package private) java.util.Map<java.lang.String,java.lang.String>propertyMap(package private) booleanquietprivate java.util.concurrent.ScheduledExecutorServicescheduledExecutorService(package private) StatusManagersm(package private) booleanstarted-
Fields inherited from class org.apache.catalina.valves.ValveBase
asyncSupported, container, containerLog, next
-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description LogbackValve()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAppender(Appender<IAccessEvent> newAppender)Add an appender.voidaddError(java.lang.String msg, java.lang.Throwable t)voidaddFilter(Filter<IAccessEvent> newFilter)Add a filter.voidaddInfo(java.lang.String msg)voidaddLifecycleListener(org.apache.catalina.LifecycleListener arg0)voidaddScheduledFuture(java.util.concurrent.ScheduledFuture<?> scheduledFuture)voidaddStatus(Status status)private voidaddThreadName(IAccessEvent accessEvent)voidaddWarn(java.lang.String msg)voidclearAllFilters()private voidconfigureAsResource(java.net.URL resourceURL)voiddetachAndStopAllAppenders()Detach and processPriorToRemoval all previously added appenders.booleandetachAppender(Appender<IAccessEvent> appender)Detach the appender passed as parameter from the list of appenders.booleandetachAppender(java.lang.String name)Detach the appender with the name passed as parameter from the list of appenders.private java.net.URLfileToUrl(java.io.File configFile)org.apache.catalina.LifecycleListener[]findLifecycleListeners()Appender<IAccessEvent>getAppender(java.lang.String name)Get an appender by name.longgetBirthTime()The time at which this context was created, expressed in millisecond elapsed since the epoch (1.1.1970).java.lang.ObjectgetConfigurationLock()Object used for synchronization purposes.java.util.List<Filter<IAccessEvent>>getCopyOfAttachedFiltersList()Get a copy of all the filters contained within this FilterAttachable object.java.util.Map<java.lang.String,java.lang.String>getCopyOfPropertyMap()Get a copy of the property mapjava.util.concurrent.ExecutorServicegetExecutorService()Every context has an ExecutorService which be invoked to execute certain tasks in a separate thread.java.lang.StringgetFilename()FilterReplygetFilterChainDecision(IAccessEvent event)Loop through the filters in the chain.java.lang.StringgetInfo()java.lang.StringgetName()Contexts are named objects.java.lang.ObjectgetObject(java.lang.String key)A Context can act as a store for various objects used by LOGBack components.java.lang.StringgetProperty(java.lang.String key)Get the property of this context.java.util.Map<java.lang.String,java.lang.String>getPropertyMap()java.util.concurrent.ScheduledExecutorServicegetScheduledExecutorService()Returns the ScheduledExecutorService for this context.StatusManagergetStatusManager()Return the StatusManager instance in use.voidinvoke(org.apache.catalina.connector.Request request, org.apache.catalina.connector.Response response)booleanisAttached(Appender<IAccessEvent> appender)Returnstrueif the specified appender is in list of attached attached,falseotherwise.booleanisQuiet()booleanisStarted()java.util.Iterator<Appender<IAccessEvent>>iteratorForAppenders()Get an iterator for appenders contained in the parent object.voidputObject(java.lang.String key, java.lang.Object value)Store an object under 'key'.voidputProperty(java.lang.String key, java.lang.String val)Set a property of this context.voidregister(LifeCycle component)Register a component that participates in the context's life cycle.voidremoveLifecycleListener(org.apache.catalina.LifecycleListener arg0)private java.net.URLsearchAsResource(java.lang.String filename)private java.io.FilesearchForConfigFileTomcatProperty(java.lang.String filename, java.lang.String propertyKey)voidsetFilename(java.lang.String filename)voidsetName(java.lang.String name)The name of the context can be set only once.voidsetQuiet(boolean quiet)voidstartInternal()protected voidstopInternal()java.lang.StringtoString()-
Methods inherited from class org.apache.catalina.valves.ValveBase
backgroundProcess, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setContainer, setNext
-
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
destroy, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, setState, setState, setThrowOnFailure, start, stop
-
-
-
-
Field Detail
-
DEFAULT_FILENAME
public static final java.lang.String DEFAULT_FILENAME
- See Also:
- Constant Field Values
-
DEFAULT_CONFIG_FILE
public static final java.lang.String DEFAULT_CONFIG_FILE
-
CATALINA_BASE_KEY
static final java.lang.String CATALINA_BASE_KEY
- See Also:
- Constant Field Values
-
CATALINA_HOME_KEY
static final java.lang.String CATALINA_HOME_KEY
- See Also:
- Constant Field Values
-
lifeCycleManager
private final LifeCycleManager lifeCycleManager
-
birthTime
private long birthTime
-
configurationLock
LogbackLock configurationLock
-
name
private java.lang.String name
-
sm
StatusManager sm
-
propertyMap
java.util.Map<java.lang.String,java.lang.String> propertyMap
-
objectMap
java.util.Map<java.lang.String,java.lang.Object> objectMap
-
fai
private FilterAttachableImpl<IAccessEvent> fai
-
aai
AppenderAttachableImpl<IAccessEvent> aai
-
filenameOption
java.lang.String filenameOption
-
quiet
boolean quiet
-
started
boolean started
-
alreadySetLogbackStatusManager
boolean alreadySetLogbackStatusManager
-
scheduledExecutorService
private java.util.concurrent.ScheduledExecutorService scheduledExecutorService
-
-
Method Detail
-
isStarted
public boolean isStarted()
-
startInternal
public void startInternal() throws org.apache.catalina.LifecycleException- Overrides:
startInternalin classorg.apache.catalina.valves.ValveBase- Throws:
org.apache.catalina.LifecycleException
-
fileToUrl
private java.net.URL fileToUrl(java.io.File configFile)
-
searchAsResource
private java.net.URL searchAsResource(java.lang.String filename)
-
searchForConfigFileTomcatProperty
private java.io.File searchForConfigFileTomcatProperty(java.lang.String filename, java.lang.String propertyKey)
-
addStatus
public void addStatus(Status status)
-
addInfo
public void addInfo(java.lang.String msg)
-
addWarn
public void addWarn(java.lang.String msg)
-
addError
public void addError(java.lang.String msg, java.lang.Throwable t)
-
configureAsResource
private void configureAsResource(java.net.URL resourceURL)
-
getFilename
public java.lang.String getFilename()
-
setFilename
public void setFilename(java.lang.String filename)
-
isQuiet
public boolean isQuiet()
-
setQuiet
public void setQuiet(boolean quiet)
-
invoke
public void invoke(org.apache.catalina.connector.Request request, org.apache.catalina.connector.Response response) throws java.io.IOException, javax.servlet.ServletException- Specified by:
invokein interfaceorg.apache.catalina.Valve- Throws:
java.io.IOExceptionjavax.servlet.ServletException
-
addThreadName
private void addThreadName(IAccessEvent accessEvent)
-
stopInternal
protected void stopInternal() throws org.apache.catalina.LifecycleException- Overrides:
stopInternalin classorg.apache.catalina.valves.ValveBase- Throws:
org.apache.catalina.LifecycleException
-
addAppender
public void addAppender(Appender<IAccessEvent> newAppender)
Description copied from interface:AppenderAttachableAdd an appender.- Specified by:
addAppenderin interfaceAppenderAttachable<IAccessEvent>
-
iteratorForAppenders
public java.util.Iterator<Appender<IAccessEvent>> iteratorForAppenders()
Description copied from interface:AppenderAttachableGet an iterator for appenders contained in the parent object.- Specified by:
iteratorForAppendersin interfaceAppenderAttachable<IAccessEvent>
-
getAppender
public Appender<IAccessEvent> getAppender(java.lang.String name)
Description copied from interface:AppenderAttachableGet an appender by name.- Specified by:
getAppenderin interfaceAppenderAttachable<IAccessEvent>
-
isAttached
public boolean isAttached(Appender<IAccessEvent> appender)
Description copied from interface:AppenderAttachableReturnstrueif the specified appender is in list of attached attached,falseotherwise.- Specified by:
isAttachedin interfaceAppenderAttachable<IAccessEvent>
-
detachAndStopAllAppenders
public void detachAndStopAllAppenders()
Description copied from interface:AppenderAttachableDetach and processPriorToRemoval all previously added appenders.- Specified by:
detachAndStopAllAppendersin interfaceAppenderAttachable<IAccessEvent>
-
detachAppender
public boolean detachAppender(Appender<IAccessEvent> appender)
Description copied from interface:AppenderAttachableDetach the appender passed as parameter from the list of appenders.- Specified by:
detachAppenderin interfaceAppenderAttachable<IAccessEvent>
-
detachAppender
public boolean detachAppender(java.lang.String name)
Description copied from interface:AppenderAttachableDetach the appender with the name passed as parameter from the list of appenders.- Specified by:
detachAppenderin interfaceAppenderAttachable<IAccessEvent>
-
getInfo
public java.lang.String getInfo()
-
getStatusManager
public StatusManager getStatusManager()
Description copied from interface:ContextReturn the StatusManager instance in use.- Specified by:
getStatusManagerin interfaceContext- Returns:
- the
StatusManagerinstance in use.
-
getPropertyMap
public java.util.Map<java.lang.String,java.lang.String> getPropertyMap()
-
putProperty
public void putProperty(java.lang.String key, java.lang.String val)Description copied from interface:ContextSet a property of this context.- Specified by:
putPropertyin interfaceContext
-
getProperty
public java.lang.String getProperty(java.lang.String key)
Description copied from interface:ContextGet the property of this context.- Specified by:
getPropertyin interfaceContext- Specified by:
getPropertyin interfacePropertyContainer
-
getCopyOfPropertyMap
public java.util.Map<java.lang.String,java.lang.String> getCopyOfPropertyMap()
Description copied from interface:ContextGet a copy of the property map- Specified by:
getCopyOfPropertyMapin interfaceContext- Specified by:
getCopyOfPropertyMapin interfacePropertyContainer
-
getObject
public java.lang.Object getObject(java.lang.String key)
Description copied from interface:ContextA Context can act as a store for various objects used by LOGBack components.
-
putObject
public void putObject(java.lang.String key, java.lang.Object value)Description copied from interface:ContextStore an object under 'key'. If no object can be found, null is returned.
-
addFilter
public void addFilter(Filter<IAccessEvent> newFilter)
Description copied from interface:FilterAttachableAdd a filter.- Specified by:
addFilterin interfaceFilterAttachable<IAccessEvent>
-
clearAllFilters
public void clearAllFilters()
- Specified by:
clearAllFiltersin interfaceFilterAttachable<IAccessEvent>
-
getCopyOfAttachedFiltersList
public java.util.List<Filter<IAccessEvent>> getCopyOfAttachedFiltersList()
Description copied from interface:FilterAttachableGet a copy of all the filters contained within this FilterAttachable object.- Specified by:
getCopyOfAttachedFiltersListin interfaceFilterAttachable<IAccessEvent>- Returns:
- all attached filters as a list
-
getFilterChainDecision
public FilterReply getFilterChainDecision(IAccessEvent event)
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<IAccessEvent>
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
Description copied from interface:ContextEvery context has an ExecutorService which be invoked to execute certain tasks in a separate thread.- Specified by:
getExecutorServicein interfaceContext- Returns:
- the executor for this context.
-
getName
public java.lang.String getName()
Description copied from interface:ContextContexts are named objects.
-
setName
public void setName(java.lang.String name)
Description copied from interface:ContextThe name of the context can be set only once.
-
getBirthTime
public long getBirthTime()
Description copied from interface:ContextThe time at which this context was created, expressed in millisecond elapsed since the epoch (1.1.1970).- Specified by:
getBirthTimein interfaceContext- Returns:
- The time as measured when this class was created.
-
getConfigurationLock
public java.lang.Object getConfigurationLock()
Description copied from interface:ContextObject used for synchronization purposes. INTENDED FOR INTERNAL USAGE.- Specified by:
getConfigurationLockin interfaceContext
-
register
public void register(LifeCycle component)
Description copied from interface:ContextRegister a component that participates in the context's life cycle.All components registered via this method will be stopped and removed from the context when the context is reset.
-
addLifecycleListener
public void addLifecycleListener(org.apache.catalina.LifecycleListener arg0)
- Specified by:
addLifecycleListenerin interfaceorg.apache.catalina.Lifecycle- Overrides:
addLifecycleListenerin classorg.apache.catalina.util.LifecycleBase
-
findLifecycleListeners
public org.apache.catalina.LifecycleListener[] findLifecycleListeners()
- Specified by:
findLifecycleListenersin interfaceorg.apache.catalina.Lifecycle- Overrides:
findLifecycleListenersin classorg.apache.catalina.util.LifecycleBase
-
removeLifecycleListener
public void removeLifecycleListener(org.apache.catalina.LifecycleListener arg0)
- Specified by:
removeLifecycleListenerin interfaceorg.apache.catalina.Lifecycle- Overrides:
removeLifecycleListenerin classorg.apache.catalina.util.LifecycleBase
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.apache.catalina.valves.ValveBase
-
getScheduledExecutorService
public java.util.concurrent.ScheduledExecutorService getScheduledExecutorService()
Description copied from interface:ContextReturns the ScheduledExecutorService for this context.- Specified by:
getScheduledExecutorServicein interfaceContext- Returns:
-
addScheduledFuture
public void addScheduledFuture(java.util.concurrent.ScheduledFuture<?> scheduledFuture)
- Specified by:
addScheduledFuturein interfaceContext
-
-