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, unprotect
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError
protected void doPublish(ExtLogRecord record)
ExtHandler
autoFlush
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 ExtHandler
record
- the log record to publishpublic final void close() throws SecurityException
ExtHandler
close
in interface Closeable
close
in interface AutoCloseable
close
in class ExtHandler
SecurityException
public 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 ExtHandler
handler
- 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 ExtHandler
newHandlers
- 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 ExtHandler
handler
- 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 ExtHandler
SecurityException
- 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 ExtHandler
true
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 false
Copyright © 2019 JBoss by Red Hat. All rights reserved.