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
Extends OutputStreamManager but instead of using a buffered output stream,
this class uses a
ByteBuffer and a RandomAccessFile to do the
I/O.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classFactory Data.private static classFactory to create a RandomAccessFileManager.Nested classes/interfaces inherited from class AbstractManager
AbstractManager.AbstractFactoryData -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final String(package private) static final intprivate static final RandomAccessFileManager.RandomAccessFileManagerFactoryprivate final RandomAccessFileFields inherited from class OutputStreamManager
byteBuffer, layoutFields inherited from class AbstractManager
count, LOGGER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRandomAccessFileManager(LoggerContext loggerContext, RandomAccessFile file, String fileName, OutputStream os, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader) -
Method Summary
Modifier and TypeMethodDescriptionbooleanvoidflush()Flushes any buffers.intReturns the buffer capacity.Gets this FileManager's content format specified by:static RandomAccessFileManagergetFileManager(String fileName, boolean append, boolean immediateFlush, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, Configuration configuration) Returns the RandomAccessFileManager.Returns the name of the File being managed.Deprecated.end-of-batch on the event is used instead.voidsetEndOfBatch(boolean endOfBatch) Deprecated.end-of-batch on the event is used instead.protected voidwriteToDestination(byte[] bytes, int offset, int length) Writes the specified section of the specified byte array to the stream.Methods inherited from class OutputStreamManager
createOutputStream, drain, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, releaseSub, setOutputStream, skipFooter, write, write, write, write, writeBytes, writeBytes, writeFooter, writeHeaderMethods inherited from class AbstractManager
close, getCount, getLoggerContext, getManager, getManagerCount, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
Field Details
-
DEFAULT_BUFFER_SIZE
static final int DEFAULT_BUFFER_SIZE- See Also:
-
FACTORY
-
advertiseURI
-
randomAccessFile
-
-
Constructor Details
-
RandomAccessFileManager
protected RandomAccessFileManager(LoggerContext loggerContext, RandomAccessFile file, String fileName, OutputStream os, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader)
-
-
Method Details
-
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
Deprecated.end-of-batch on the event is used instead.No longer used, theLogEvent.isEndOfBatch()attribute is used instead.- Returns:
Boolean.FALSE.
-
setEndOfBatch
Deprecated.end-of-batch on the event is used instead.No longer used, theLogEvent.isEndOfBatch()attribute is used instead. This method is a no-op. -
writeToDestination
protected void writeToDestination(byte[] bytes, int offset, int length) Description copied from class:OutputStreamManagerWrites the specified section of the specified byte array to the stream.- Overrides:
writeToDestinationin classOutputStreamManager- Parameters:
bytes- the array containing dataoffset- from where to writelength- how many bytes to write
-
flush
public void flush()Description copied from class:OutputStreamManagerFlushes any buffers.- Overrides:
flushin classOutputStreamManager
-
closeOutputStream
public boolean closeOutputStream()- Overrides:
closeOutputStreamin classOutputStreamManager
-
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
Gets this FileManager's content format specified by:Key: "fileURI" Value: provided "advertiseURI" param.
- Overrides:
getContentFormatin classAbstractManager- Returns:
- Map of content format keys supporting FileManager
-