public class RollingRandomAccessFileManager extends RollingFileManager
ByteBuffer
and a
RandomAccessFile
to do the I/O.Modifier and Type | Class and Description |
---|---|
private static class |
RollingRandomAccessFileManager.FactoryData
Factory data.
|
private static class |
RollingRandomAccessFileManager.RollingRandomAccessFileManagerFactory
Factory to create a RollingRandomAccessFileManager.
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_BUFFER_SIZE
The default buffer size.
|
private static RollingRandomAccessFileManager.RollingRandomAccessFileManagerFactory |
FACTORY |
private java.lang.ThreadLocal<java.lang.Boolean> |
isEndOfBatch |
private java.io.RandomAccessFile |
randomAccessFile |
size
byteBuffer, layout
count, LOGGER
Constructor and Description |
---|
RollingRandomAccessFileManager(LoggerContext loggerContext,
java.io.RandomAccessFile raf,
java.lang.String fileName,
java.lang.String pattern,
java.io.OutputStream os,
boolean append,
boolean immediateFlush,
int bufferSize,
long size,
long time,
TriggeringPolicy policy,
RolloverStrategy strategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
boolean writeHeader)
Deprecated.
|
RollingRandomAccessFileManager(LoggerContext loggerContext,
java.io.RandomAccessFile raf,
java.lang.String fileName,
java.lang.String pattern,
java.io.OutputStream os,
boolean append,
boolean immediateFlush,
int bufferSize,
long size,
long initialTime,
TriggeringPolicy policy,
RolloverStrategy strategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
java.lang.String filePermissions,
java.lang.String fileOwner,
java.lang.String fileGroup,
boolean writeHeader) |
Modifier and Type | Method and Description |
---|---|
boolean |
closeOutputStream() |
protected void |
createFileAfterRollover() |
private void |
createFileAfterRollover(java.lang.String fileName) |
void |
flush()
Flushes any buffers.
|
int |
getBufferSize()
Returns the buffer capacity.
|
static RollingRandomAccessFileManager |
getRollingRandomAccessFileManager(java.lang.String fileName,
java.lang.String filePattern,
boolean isAppend,
boolean immediateFlush,
int bufferSize,
TriggeringPolicy policy,
RolloverStrategy strategy,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
java.lang.String filePermissions,
java.lang.String fileOwner,
java.lang.String fileGroup,
Configuration configuration) |
java.lang.Boolean |
isEndOfBatch() |
void |
setEndOfBatch(boolean endOfBatch) |
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.
|
private void |
writeHeader()
Writes the layout's header to the file if it exists.
|
protected void |
writeToDestination(byte[] bytes,
int offset,
int length)
Overrides
OutputStreamManager.writeToDestination(byte[], int, int) to add support for file locking. |
checkRollover, getFileExtension, getFileManager, getFileName, getFileSize, getFileTime, getPatternProcessor, getRolloverStrategy, getTriggeringPolicy, initialize, isDirectWrite, isRenameEmptyFiles, releaseSub, rollover, rollover, setPatternProcessor, setRenameEmptyFiles, setRolloverStrategy, setTriggeringPolicy
createOutputStream, defineAttributeView, getContentFormat, getFileGroup, getFileManager, getFileOwner, getFilePermissions, isAppend, isAttributeViewEnabled, isCreateOnDemand, isLocking
drain, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, setOutputStream, skipFooter, write, write, write, writeBytes, writeBytes, writeFooter
close, getCount, getLoggerContext, getName, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop
public static final int DEFAULT_BUFFER_SIZE
private static final RollingRandomAccessFileManager.RollingRandomAccessFileManagerFactory FACTORY
private java.io.RandomAccessFile randomAccessFile
private final java.lang.ThreadLocal<java.lang.Boolean> isEndOfBatch
@Deprecated public RollingRandomAccessFileManager(LoggerContext loggerContext, java.io.RandomAccessFile raf, java.lang.String fileName, java.lang.String pattern, java.io.OutputStream os, boolean append, boolean immediateFlush, int bufferSize, long size, long time, TriggeringPolicy policy, RolloverStrategy strategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, boolean writeHeader)
public RollingRandomAccessFileManager(LoggerContext loggerContext, java.io.RandomAccessFile raf, java.lang.String fileName, java.lang.String pattern, java.io.OutputStream os, boolean append, boolean immediateFlush, int bufferSize, long size, long initialTime, TriggeringPolicy policy, RolloverStrategy strategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, java.lang.String filePermissions, java.lang.String fileOwner, java.lang.String fileGroup, boolean writeHeader)
private void writeHeader()
public static RollingRandomAccessFileManager getRollingRandomAccessFileManager(java.lang.String fileName, java.lang.String filePattern, boolean isAppend, boolean immediateFlush, int bufferSize, TriggeringPolicy policy, RolloverStrategy strategy, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, java.lang.String filePermissions, java.lang.String fileOwner, java.lang.String fileGroup, Configuration configuration)
public java.lang.Boolean isEndOfBatch()
public void setEndOfBatch(boolean endOfBatch)
protected void write(byte[] bytes, int offset, int length, boolean immediateFlush)
OutputStreamManager
write
in class RollingFileManager
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 RollingFileManager
bytes
- the array containing dataoffset
- from where to writelength
- how many bytes to writeprotected void createFileAfterRollover() throws java.io.IOException
createFileAfterRollover
in class RollingFileManager
java.io.IOException
private void createFileAfterRollover(java.lang.String fileName) throws java.io.IOException
java.io.IOException
public void flush()
OutputStreamManager
flush
in class OutputStreamManager
public boolean closeOutputStream()
closeOutputStream
in class OutputStreamManager
public int getBufferSize()
getBufferSize
in class FileManager
public void updateData(java.lang.Object data)
updateData
in class RollingFileManager