Class RandomAccessFileManager
- java.lang.Object
-
- org.apache.logging.log4j.core.appender.AbstractManager
-
- org.apache.logging.log4j.core.appender.OutputStreamManager
-
- org.apache.logging.log4j.core.appender.RandomAccessFileManager
-
- All Implemented Interfaces:
AutoCloseable
,ByteBufferDestination
public class RandomAccessFileManager extends OutputStreamManager
Extends OutputStreamManager but instead of using a buffered output stream, this class uses aByteBuffer
and aRandomAccessFile
to do the I/O.
-
-
Field Summary
-
Fields inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
byteBuffer, layout
-
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RandomAccessFileManager(LoggerContext loggerContext, RandomAccessFile file, String fileName, OutputStream os, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
closeOutputStream()
void
flush()
Flushes any buffers.int
getBufferSize()
Returns the buffer capacity.Map<String,String>
getContentFormat()
Gets this FileManager's content format specified by:static RandomAccessFileManager
getFileManager(String fileName, boolean append, boolean immediateFlush, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, Configuration configuration)
Returns the RandomAccessFileManager.String
getFileName()
Returns the name of the File being managed.Boolean
isEndOfBatch()
void
setEndOfBatch(boolean endOfBatch)
protected void
writeToDestination(byte[] bytes, int offset, int length)
Writes the specified section of the specified byte array to the stream.-
Methods inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
createOutputStream, drain, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, releaseSub, setOutputStream, skipFooter, write, write, write, write, writeBytes, writeBytes, writeFooter
-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getCount, getLoggerContext, getManager, getName, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
-
-
-
Constructor Detail
-
RandomAccessFileManager
protected RandomAccessFileManager(LoggerContext loggerContext, RandomAccessFile file, String fileName, OutputStream os, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader)
-
-
Method Detail
-
getFileManager
public static RandomAccessFileManager getFileManager(String fileName, boolean append, boolean immediateFlush, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, Configuration configuration)
Returns the RandomAccessFileManager.- Parameters:
fileName
- The name of the file to manage.append
- true if the file should be appended to, false if it should be overwritten.immediateFlush
- true if the contents should be flushed to disk on every writebufferSize
- The buffer size.advertiseURI
- the URI to use when advertising the filelayout
- The layout.configuration
- The configuration.- Returns:
- A RandomAccessFileManager for the File.
-
isEndOfBatch
public Boolean isEndOfBatch()
-
setEndOfBatch
public void setEndOfBatch(boolean endOfBatch)
-
writeToDestination
protected void writeToDestination(byte[] bytes, int offset, int length)
Description copied from class:OutputStreamManager
Writes the specified section of the specified byte array to the stream.- Overrides:
writeToDestination
in classOutputStreamManager
- Parameters:
bytes
- the array containing dataoffset
- from where to writelength
- how many bytes to write
-
flush
public void flush()
Description copied from class:OutputStreamManager
Flushes any buffers.- Overrides:
flush
in classOutputStreamManager
-
closeOutputStream
public boolean closeOutputStream()
- Overrides:
closeOutputStream
in classOutputStreamManager
-
getFileName
public String getFileName()
Returns the name of the File being managed.- Returns:
- The name of the File being managed.
-
getBufferSize
public int getBufferSize()
Returns the buffer capacity.- Returns:
- the buffer size
-
getContentFormat
public Map<String,String> getContentFormat()
Gets this FileManager's content format specified by:Key: "fileURI" Value: provided "advertiseURI" param.
- Overrides:
getContentFormat
in classAbstractManager
- Returns:
- Map of content format keys supporting FileManager
-
-