public class RollingFileManager extends FileManager
Modifier and Type | Class and Description |
---|---|
private static class |
RollingFileManager.AsyncAction
Performs actions asynchronously.
|
private static class |
RollingFileManager.EmptyQueue |
private static class |
RollingFileManager.FactoryData
Factory data.
|
private static class |
RollingFileManager.RollingFileManagerFactory
Factory to create a RollingFileManager.
|
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ExecutorService |
asyncExecutor |
private static RollingFileManager.RollingFileManagerFactory |
factory |
private FileExtension |
fileExtension |
private java.lang.String |
fileName |
private boolean |
initialized |
private long |
initialTime |
private static int |
MAX_TRIES |
private static int |
MIN_DURATION |
private PatternProcessor |
patternProcessor |
private boolean |
renameEmptyFiles |
private RolloverStrategy |
rolloverStrategy |
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<RollingFileManager,RolloverStrategy> |
rolloverStrategyUpdater |
private java.util.concurrent.Semaphore |
semaphore |
protected long |
size |
private Log4jThreadFactory |
threadFactory |
private TriggeringPolicy |
triggeringPolicy |
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<RollingFileManager,TriggeringPolicy> |
triggeringPolicyUpdater |
byteBuffer, layout
count, LOGGER
Modifier | Constructor and Description |
---|---|
protected |
RollingFileManager(LoggerContext loggerContext,
java.lang.String fileName,
java.lang.String pattern,
java.io.OutputStream os,
boolean append,
boolean createOnDemand,
long size,
long time,
TriggeringPolicy triggeringPolicy,
RolloverStrategy rolloverStrategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
boolean writeHeader,
java.nio.ByteBuffer buffer) |
protected |
RollingFileManager(java.lang.String fileName,
java.lang.String pattern,
java.io.OutputStream os,
boolean append,
long size,
long time,
TriggeringPolicy triggeringPolicy,
RolloverStrategy rolloverStrategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
boolean writeHeader,
java.nio.ByteBuffer buffer)
Deprecated.
|
protected |
RollingFileManager(java.lang.String fileName,
java.lang.String pattern,
java.io.OutputStream os,
boolean append,
long size,
long time,
TriggeringPolicy triggeringPolicy,
RolloverStrategy rolloverStrategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
int bufferSize,
boolean writeHeader)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
void |
checkRollover(LogEvent event)
Determines if a rollover should occur.
|
protected void |
createFileAfterRollover() |
FileExtension |
getFileExtension() |
static RollingFileManager |
getFileManager(java.lang.String fileName,
java.lang.String pattern,
boolean append,
boolean bufferedIO,
TriggeringPolicy policy,
RolloverStrategy strategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
int bufferSize,
boolean immediateFlush,
boolean createOnDemand,
Configuration configuration)
Returns a RollingFileManager.
|
java.lang.String |
getFileName()
Returns the name of the File being managed.
|
long |
getFileSize()
Returns the current size of the file.
|
long |
getFileTime()
Returns the time the file was created.
|
PatternProcessor |
getPatternProcessor()
Returns the pattern processor.
|
RolloverStrategy |
getRolloverStrategy()
Returns the rollover strategy.
|
<T extends TriggeringPolicy> |
getTriggeringPolicy()
Returns the triggering policy.
|
void |
initialize() |
boolean |
isRenameEmptyFiles() |
boolean |
releaseSub(long timeout,
java.util.concurrent.TimeUnit timeUnit)
Default hook to write footer during close.
|
void |
rollover() |
private boolean |
rollover(RolloverStrategy strategy) |
void |
setRenameEmptyFiles(boolean renameEmptyFiles) |
void |
setRolloverStrategy(RolloverStrategy rolloverStrategy) |
void |
setTriggeringPolicy(TriggeringPolicy triggeringPolicy) |
void |
updateData(java.lang.Object data) |
protected void |
write(byte[] bytes,
int offset,
int length,
boolean immediateFlush)
Some output streams synchronize writes while others do not.
|
protected void |
writeToDestination(byte[] bytes,
int offset,
int length)
Overrides
OutputStreamManager.writeToDestination(byte[], int, int) to add support for file locking. |
createOutputStream, getBufferSize, getContentFormat, getFileManager, isAppend, isCreateOnDemand, isLocking
closeOutputStream, drain, flush, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, setOutputStream, skipFooter, write, write, write, writeFooter
close, getCount, getLoggerContext, getName, hasManager, log, logDebug, logError, logWarn, release, stop
private static RollingFileManager.RollingFileManagerFactory factory
private static final int MAX_TRIES
private static final int MIN_DURATION
protected long size
private long initialTime
private final PatternProcessor patternProcessor
private final java.util.concurrent.Semaphore semaphore
private final Log4jThreadFactory threadFactory
private volatile TriggeringPolicy triggeringPolicy
private volatile RolloverStrategy rolloverStrategy
private volatile boolean renameEmptyFiles
private volatile boolean initialized
private volatile java.lang.String fileName
private FileExtension fileExtension
private java.util.concurrent.ExecutorService asyncExecutor
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<RollingFileManager,TriggeringPolicy> triggeringPolicyUpdater
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<RollingFileManager,RolloverStrategy> rolloverStrategyUpdater
@Deprecated protected RollingFileManager(java.lang.String fileName, java.lang.String pattern, java.io.OutputStream os, boolean append, long size, long time, TriggeringPolicy triggeringPolicy, RolloverStrategy rolloverStrategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, int bufferSize, boolean writeHeader)
@Deprecated protected RollingFileManager(java.lang.String fileName, java.lang.String pattern, java.io.OutputStream os, boolean append, long size, long time, TriggeringPolicy triggeringPolicy, RolloverStrategy rolloverStrategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, boolean writeHeader, java.nio.ByteBuffer buffer)
protected RollingFileManager(LoggerContext loggerContext, java.lang.String fileName, java.lang.String pattern, java.io.OutputStream os, boolean append, boolean createOnDemand, long size, long time, TriggeringPolicy triggeringPolicy, RolloverStrategy rolloverStrategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, boolean writeHeader, java.nio.ByteBuffer buffer)
public void initialize()
public static RollingFileManager getFileManager(java.lang.String fileName, java.lang.String pattern, boolean append, boolean bufferedIO, TriggeringPolicy policy, RolloverStrategy strategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, int bufferSize, boolean immediateFlush, boolean createOnDemand, Configuration configuration)
fileName
- The file name.pattern
- The pattern for rolling file.append
- true if the file should be appended to.bufferedIO
- true if data should be buffered.policy
- The TriggeringPolicy.strategy
- The RolloverStrategy.advertiseURI
- the URI to use when advertising the filelayout
- The Layout.bufferSize
- buffer size to use if bufferedIO is trueimmediateFlush
- flush on every write or notcreateOnDemand
- true if you want to lazy-create the file (a.k.a. on-demand.)configuration
- The configuration.public java.lang.String getFileName()
getFileName
in class FileManager
public FileExtension getFileExtension()
protected void write(byte[] bytes, int offset, int length, boolean immediateFlush)
OutputStreamManager
write
in class FileManager
bytes
- The serialized Log event.offset
- The offset into the byte array.length
- The number of bytes to write.immediateFlush
- flushes immediately after writing.protected void writeToDestination(byte[] bytes, int offset, int length)
FileManager
OutputStreamManager.writeToDestination(byte[], int, int)
to add support for file locking.writeToDestination
in class FileManager
bytes
- the array containing dataoffset
- from where to writelength
- how many bytes to writepublic boolean isRenameEmptyFiles()
public void setRenameEmptyFiles(boolean renameEmptyFiles)
public long getFileSize()
public long getFileTime()
public void checkRollover(LogEvent event)
event
- The LogEvent.public boolean releaseSub(long timeout, java.util.concurrent.TimeUnit timeUnit)
OutputStreamManager
releaseSub
in class OutputStreamManager
timeout
- timeouttimeUnit
- timeout time unitpublic void rollover()
protected void createFileAfterRollover() throws java.io.IOException
java.io.IOException
public PatternProcessor getPatternProcessor()
public void setTriggeringPolicy(TriggeringPolicy triggeringPolicy)
public void setRolloverStrategy(RolloverStrategy rolloverStrategy)
public <T extends TriggeringPolicy> T getTriggeringPolicy()
T
- TriggeringPolicy typepublic RolloverStrategy getRolloverStrategy()
private boolean rollover(RolloverStrategy strategy)
public void updateData(java.lang.Object data)
updateData
in class AbstractManager