org.apache.logging.log4j.core.appender
Class RandomAccessFileManager

java.lang.Object
  extended by org.apache.logging.log4j.core.appender.AbstractManager
      extended by org.apache.logging.log4j.core.appender.OutputStreamManager
          extended by org.apache.logging.log4j.core.appender.RandomAccessFileManager

public class RandomAccessFileManager
extends OutputStreamManager

Extends OutputStreamManager but instead of using a buffered output stream, this class uses a ByteBuffer and a RandomAccessFile to do the I/O.


Field Summary
 
Fields inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
layout
 
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
 
Constructor Summary
protected RandomAccessFileManager(RandomAccessFile file, String fileName, OutputStream os, boolean immediateFlush, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout)
           
 
Method Summary
 void close()
           
 void flush()
          Flushes any buffers.
 int getBufferSize()
          Returns the buffer capacity.
 Map<String,String> getContentFormat()
          FileManager's content format is specified by:

Key: "fileURI" Value: provided "advertiseURI" param.

static RandomAccessFileManager getFileManager(String fileName, boolean append, boolean isFlush, int bufferSize, String advertiseURI, Layout<? extends Serializable> layout)
          Returns the RandomAccessFileManager.
 String getFileName()
          Returns the name of the File being managed.
 Boolean isEndOfBatch()
           
 void setEndOfBatch(boolean isEndOfBatch)
           
protected  void write(byte[] bytes, int offset, int length)
          Some output streams synchronize writes while others do not.
 
Methods inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
getManager, getOutputStream, isOpen, releaseSub, setOutputStream, write, writeFooter
 
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
getCount, getName, hasManager, release
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RandomAccessFileManager

protected RandomAccessFileManager(RandomAccessFile file,
                                  String fileName,
                                  OutputStream os,
                                  boolean immediateFlush,
                                  int bufferSize,
                                  String advertiseURI,
                                  Layout<? extends Serializable> layout)
Method Detail

getFileManager

public static RandomAccessFileManager getFileManager(String fileName,
                                                     boolean append,
                                                     boolean isFlush,
                                                     int bufferSize,
                                                     String advertiseURI,
                                                     Layout<? extends Serializable> layout)
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.
isFlush - true if the contents should be flushed to disk on every write
bufferSize - The buffer size.
advertiseURI - the URI to use when advertising the file
layout - The layout.
Returns:
A RandomAccessFileManager for the File.

isEndOfBatch

public Boolean isEndOfBatch()

setEndOfBatch

public void setEndOfBatch(boolean isEndOfBatch)

write

protected void write(byte[] bytes,
                     int offset,
                     int length)
Description copied from class: OutputStreamManager
Some output streams synchronize writes while others do not. Synchronizing here insures that log events won't be intertwined.

Overrides:
write in class OutputStreamManager
Parameters:
bytes - The serialized Log event.
offset - The offset into the byte array.
length - The number of bytes to write.

flush

public void flush()
Description copied from class: OutputStreamManager
Flushes any buffers.

Overrides:
flush in class OutputStreamManager

close

public void close()
Overrides:
close in class OutputStreamManager

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()
FileManager's content format is specified by:

Key: "fileURI" Value: provided "advertiseURI" param.

Overrides:
getContentFormat in class AbstractManager
Returns:
Map of content format keys supporting FileManager


Copyright © 1999-2014 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.