public class DelayedHandler extends ExtHandler
handlers, handlersUpdater| Constructor and Description |
|---|
DelayedHandler() |
| Modifier and Type | Method and Description |
|---|---|
void |
addHandler(Handler handler)
Add a sub-handler to this handler.
|
Handler[] |
clearHandlers()
A convenience method to atomically get and clear all sub-handlers.
|
void |
close()
Close all child handlers.
|
protected void |
doPublish(ExtLogRecord record)
Do the actual work of publication; the record will have been filtered already.
|
boolean |
isActivated()
Indicates whether or not this handler has been activated.
|
boolean |
isCallerCalculationRequired()
Indicates whether or not the formatter associated with this handler or a formatter
from a child handler requires the caller to be calculated.
|
void |
removeHandler(Handler handler)
Remove a sub-handler from this handler.
|
void |
setCallerCalculationRequired(boolean callerCalculationRequired)
Sets whether or not caller information will be required when formatting
records.
|
Handler[] |
setHandlers(Handler[] newHandlers)
A convenience method to atomically get and replace the sub-handler array.
|
checkAccess, checkAccess, disableAccess, enableAccess, flush, getHandlers, isAutoFlush, isCloseChildren, isEnabled, protect, publish, publish, setAutoFlush, setCloseChildren, setEnabled, setEncoding, setErrorManager, setFilter, setFormatter, setLevel, unprotectgetEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportErrorprotected void doPublish(ExtLogRecord record)
ExtHandlerautoFlush property is set to true; if this behavior is to be
preserved in a subclass then this method should be called after the record is physically written.doPublish in class ExtHandlerrecord - the log record to publishpublic final void close()
throws SecurityException
ExtHandlerclose in interface Closeableclose in interface AutoCloseableclose in class ExtHandlerSecurityExceptionpublic void addHandler(Handler handler) throws SecurityException
Note that once this is invoked the handler will be activated and the messages will no longer be queued. If more
than one child handler is required the setHandlers(Handler[]) should be used.
addHandler in class ExtHandlerhandler - the handler to addSecurityException - if a security manager exists and if the caller does not have LoggingPermission(control) or the handler is protected.setHandlers(Handler[])public Handler[] setHandlers(Handler[] newHandlers) throws SecurityException
Note that once this is invoked the handler will be activated and the messages will no longer be queued.
setHandlers in class ExtHandlernewHandlers - the new sub-handlersSecurityException - if a security manager exists and if the caller does not have LoggingPermission(control) or the handler is protected.public void removeHandler(Handler handler) throws SecurityException
Note that if the last child handler is removed the handler will no longer be activated and the messages will again be queued.
removeHandler in class ExtHandlerhandler - the handler to removeSecurityException - if a security manager exists and if the caller does not have LoggingPermission(control) or the handler is protected.clearHandlers()public Handler[] clearHandlers() throws SecurityException
Note that once this is invoked the handler will no longer be activated and messages will again be queued.
clearHandlers in class ExtHandlerSecurityException - if a security manager exists and if the caller does not have LoggingPermission(control) or the handler is protected.removeHandler(Handler)public boolean isCallerCalculationRequired()
Calculating the caller on a log record can be an expensive operation. Some handlers
may be required to copy some data from the log record, but may not need the caller information. If the
formatter is a ExtFormatter the
ExtFormatter.isCallerCalculationRequired() is used to determine if calculation of the caller is
required.
This can be overridden to always require the caller calculation by setting the
setCallerCalculationRequired(boolean) value to true.
isCallerCalculationRequired in class ExtHandlertrue if the caller should be calculated, otherwise false if it can be skippedsetCallerCalculationRequired(boolean)public void setCallerCalculationRequired(boolean callerCalculationRequired)
If set to true the caller information will be calculated for each
record that is placed in the queue. A value of false means the
super#isCallerCalculationRequired() will be used.
Note that the caller information is only attempted to be calculated when the handler has not been activated. Once activated it's up to the children handlers to determine how the record is processed.
callerCalculationRequired - true if the caller information
should always be calculated before the record is being placed in the queuepublic final boolean isActivated()
true if the handler has been activated, otherwise falseCopyright © 2018 JBoss by Red Hat. All rights reserved.