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 classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractManager
AbstractManager.AbstractFactoryData
-
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
ModifierConstructorDescriptionprotected
RandomAccessFileManager
(LoggerContext loggerContext, RandomAccessFile file, String fileName, OutputStream os, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader) -
Method Summary
Modifier and TypeMethodDescriptionboolean
void
flush()
Flushes any buffers.int
Returns the buffer capacity.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.Returns the name of the File being managed.Deprecated.end-of-batch on the event is used instead.void
setEndOfBatch
(boolean endOfBatch) Deprecated.end-of-batch on the event is used instead.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, writeHeader
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getCount, getLoggerContext, getManager, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
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: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
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:
getContentFormat
in classAbstractManager
- Returns:
- Map of content format keys supporting FileManager
-