Class SharedRollingFileAppender
- java.lang.Object
-
- org.apache.logging.log4j.core.AbstractLifeCycle
-
- org.apache.logging.log4j.core.filter.AbstractFilterable
-
- org.apache.logging.log4j.core.appender.AbstractAppender
-
- org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<org.apache.logging.log4j.core.appender.rolling.RollingFileManager>
-
- org.droolsassert.util.SharedRollingFileAppender
-
- All Implemented Interfaces:
org.apache.logging.log4j.core.Appender,org.apache.logging.log4j.core.appender.rolling.RolloverListener,org.apache.logging.log4j.core.filter.Filterable,org.apache.logging.log4j.core.impl.LocationAware,org.apache.logging.log4j.core.LifeCycle,org.apache.logging.log4j.core.LifeCycle2
@Plugin(name="SharedRollingFile", category="Core", elementType="appender", printObject=true) public final class SharedRollingFileAppender extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<org.apache.logging.log4j.core.appender.rolling.RollingFileManager> implements org.apache.logging.log4j.core.appender.rolling.RolloverListenerThis is copy of RollingFileAppender v.2.15.0 with additional file based locking functionality to make it possible to populate to the same log file from different JVMs.
Additional parameters:
fileLock - path to the file to be used for shared locking (will be created if needed). The same lock can be used for different appenders.
resourceLock - path to the resource to be used for shared locking (must not be packed within archive).
messageQueueSize - message queue size to be used as a buffer for asynchronous processing to soften heavy file locking operations time
default 1K.writerThreadKeepAliveTimeSec - if value is greater than zero, it is used as a time to shut down background non-daemon writer thread guarantee messages flush to the file system in the background thread but not prevent normal JVM shutdown when idle. Rare messages may experience short delays (~0.3s) starting worker thread. If value is zero, endless daemon worker thread is started not preventing normal JVM shutdown but without any guarantee of messages processing before shutdown. This approach has no write time delays and continuous worker thread recreation after idle times (suitable for long running applications).
default 3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSharedRollingFileAppender.Builder<B extends SharedRollingFileAppender.Builder<B>>
-
Field Summary
Fields Modifier and Type Field Description static StringPLUGIN_NAME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappend(org.apache.logging.log4j.core.LogEvent event)protected voiddoAppend(org.apache.logging.log4j.core.LogEvent event)Writes the log entry rolling over the file when required.StringgetFileName()Returns the File name for the Appender.StringgetFilePattern()Returns the file pattern used when rolling over.<T extends org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy>
TgetTriggeringPolicy()Returns the triggering policy.static <B extends SharedRollingFileAppender.Builder<B>>
BnewBuilder()Creates a new Builder.protected voidprocessQueue()voidrolloverComplete(String fileName)voidrolloverTriggered(String fileName)booleanstop(long timeout, TimeUnit timeUnit)-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender
directEncodeEvent, getImmediateFlush, getManager, start, stop, writeByteArrayToManager
-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
error, error, error, getHandler, getLayout, getName, ignoreExceptions, parseInt, requiresLocation, setHandler, toSerializable, toString
-
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable
addFilter, getFilter, getPropertyArray, hasFilter, isFiltered, removeFilter
-
Methods inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
equalsImpl, getState, getStatusLogger, hashCodeImpl, initialize, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping, stop, stop
-
-
-
-
Field Detail
-
PLUGIN_NAME
public static final String PLUGIN_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
processQueue
protected void processQueue()
-
rolloverTriggered
public void rolloverTriggered(String fileName)
- Specified by:
rolloverTriggeredin interfaceorg.apache.logging.log4j.core.appender.rolling.RolloverListener
-
rolloverComplete
public void rolloverComplete(String fileName)
- Specified by:
rolloverCompletein interfaceorg.apache.logging.log4j.core.appender.rolling.RolloverListener
-
stop
public boolean stop(long timeout, TimeUnit timeUnit)- Specified by:
stopin interfaceorg.apache.logging.log4j.core.LifeCycle2- Overrides:
stopin classorg.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<org.apache.logging.log4j.core.appender.rolling.RollingFileManager>
-
append
public void append(org.apache.logging.log4j.core.LogEvent event)
- Specified by:
appendin interfaceorg.apache.logging.log4j.core.Appender- Overrides:
appendin classorg.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<org.apache.logging.log4j.core.appender.rolling.RollingFileManager>
-
doAppend
protected void doAppend(org.apache.logging.log4j.core.LogEvent event)
Writes the log entry rolling over the file when required.- Parameters:
event- The LogEvent.
-
getFileName
public String getFileName()
Returns the File name for the Appender.- Returns:
- The file name.
-
getFilePattern
public String getFilePattern()
Returns the file pattern used when rolling over.- Returns:
- The file pattern.
-
getTriggeringPolicy
public <T extends org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy> T getTriggeringPolicy()
Returns the triggering policy.- Type Parameters:
T- TriggeringPolicy type- Returns:
- The TriggeringPolicy
-
newBuilder
@PluginBuilderFactory public static <B extends SharedRollingFileAppender.Builder<B>> B newBuilder()
Creates a new Builder.- Returns:
- a new Builder.
- Since:
- 2.7
-
-