Class FileAppender

java.lang.Object
org.apache.log4j.AppenderSkeleton
org.apache.log4j.WriterAppender
org.apache.log4j.FileAppender
All Implemented Interfaces:
org.apache.log4j.Appender, org.apache.log4j.spi.OptionHandler

public class FileAppender extends org.apache.log4j.WriterAppender
Just a copy of the old log4j12 FileAppender. The ContainerLogAppender for YARN NodeManager needs this class but the log4j-1.2-api bridge does not provide it which causes the UTs in hbase-mapreduce module to fail if we start a separated MR cluster.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.log4j.AppenderSkeleton

    org.apache.log4j.AppenderSkeleton.NoOpErrorHandler
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected boolean
    Do we do bufferedIO?
    protected int
    Determines the size of IO buffer be.
    protected boolean
    Controls file truncatation.
    protected String
    The name of the log file.

    Fields inherited from class org.apache.log4j.WriterAppender

    encoding, immediateFlush, qw

    Fields inherited from class org.apache.log4j.AppenderSkeleton

    closed, errorHandler, headFilter, layout, name, tailFilter, threshold
  • Constructor Summary

    Constructors
    Constructor
    Description
    The default constructor does not do anything.
    FileAppender(org.apache.log4j.Layout layout, String fileName)
    Instantiate a FileAppender and open the file designated by filename.
    FileAppender(org.apache.log4j.Layout layout, String fileName, boolean append)
    Instantiate a FileAppender and open the file designated by fileName.
    FileAppender(org.apache.log4j.Layout layout, String fileName, boolean append, boolean bufferedIO, int bufferSize)
    Instantiate a FileAppender and open the file designated by fileName.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    If the value of File is not null, then setFile(java.lang.String) is called with the values of File and Append properties.
    protected void
    Closes the previously opened file.
    boolean
    Returns the value of the Append option.
    boolean
    Get the value of the BufferedIO option.
    int
    Get the size of the IO buffer.
    Returns the value of the File option.
    protected void
    Close any previously opened file and call the parent's reset.
    void
    setAppend(boolean flag)
    The Append option takes a boolean value.
    void
    setBufferedIO(boolean bufferedIO)
    The BufferedIO option takes a boolean value.
    void
    setBufferSize(int bufferSize)
    Set the size of the IO buffer.
    void
    The File property takes a string value which should be the name of the file to append to.
    void
    setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize)
    Sets and opens the file where the log output will go.
    protected void
    Sets the quiet writer being used.

    Methods inherited from class org.apache.log4j.WriterAppender

    append, checkEntryConditions, close, closeWriter, createWriter, getEncoding, getImmediateFlush, requiresLayout, setEncoding, setErrorHandler, setImmediateFlush, setWriter, shouldFlush, subAppend, writeFooter, writeHeader

    Methods inherited from class org.apache.log4j.AppenderSkeleton

    addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setLayout, setName, setThreshold

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • fileAppend

      protected boolean fileAppend
      Controls file truncatation. The default value for this variable is true, meaning that by default a FileAppender will append to an existing file and not truncate it.

      This option is meaningful only if the FileAppender opens the file.

    • fileName

      protected String fileName
      The name of the log file.
    • bufferedIO

      protected boolean bufferedIO
      Do we do bufferedIO?
    • bufferSize

      protected int bufferSize
      Determines the size of IO buffer be. Default is 8K.
  • Constructor Details

    • FileAppender

      public FileAppender()
      The default constructor does not do anything.
    • FileAppender

      public FileAppender(org.apache.log4j.Layout layout, String fileName, boolean append, boolean bufferedIO, int bufferSize) throws IOException
      Instantiate a FileAppender and open the file designated by fileName. The opened filename will become the output destination for this appender.

      If the append parameter is true, the file will be appended to. Otherwise, the file designated by fileName will be truncated before being opened.

      If the bufferedIO parameter is true, then buffered IO will be used to write to the output file.

      Throws:
      IOException
    • FileAppender

      public FileAppender(org.apache.log4j.Layout layout, String fileName, boolean append) throws IOException
      Instantiate a FileAppender and open the file designated by fileName. The opened filename will become the output destination for this appender.

      If the append parameter is true, the file will be appended to. Otherwise, the file designated by fileName will be truncated before being opened.

      Throws:
      IOException
    • FileAppender

      public FileAppender(org.apache.log4j.Layout layout, String fileName) throws IOException
      Instantiate a FileAppender and open the file designated by filename. The opened filename will become the output destination for this appender.

      The file will be appended to.

      Throws:
      IOException
  • Method Details

    • setFile

      public void setFile(String file)
      The File property takes a string value which should be the name of the file to append to.

      Note that the special values "System.out" or "System.err" are no longer honored.

      Note: Actual opening of the file is made when activateOptions() is called, not when the options are set.

    • getAppend

      public boolean getAppend()
      Returns the value of the Append option.
    • getFile

      public String getFile()
      Returns the value of the File option.
    • activateOptions

      public void activateOptions()
      If the value of File is not null, then setFile(java.lang.String) is called with the values of File and Append properties.
      Specified by:
      activateOptions in interface org.apache.log4j.spi.OptionHandler
      Overrides:
      activateOptions in class org.apache.log4j.WriterAppender
      Since:
      0.8.1
    • closeFile

      protected void closeFile()
      Closes the previously opened file.
    • getBufferedIO

      public boolean getBufferedIO()
      Get the value of the BufferedIO option.

      BufferedIO will significatnly increase performance on heavily loaded systems.

    • getBufferSize

      public int getBufferSize()
      Get the size of the IO buffer.
    • setAppend

      public void setAppend(boolean flag)
      The Append option takes a boolean value. It is set to true by default. If true, then File will be opened in append mode by setFile (see above). Otherwise, setFile will open File in truncate mode.

      Note: Actual opening of the file is made when activateOptions() is called, not when the options are set.

    • setBufferedIO

      public void setBufferedIO(boolean bufferedIO)
      The BufferedIO option takes a boolean value. It is set to false by default. If true, then File will be opened and the resulting Writer wrapped around a BufferedWriter. BufferedIO will significatnly increase performance on heavily loaded systems.
    • setBufferSize

      public void setBufferSize(int bufferSize)
      Set the size of the IO buffer.
    • setFile

      public void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize) throws IOException

      Sets and opens the file where the log output will go. The specified file must be writable.

      If there was already an opened file, then the previous file is closed first.

      Do not use this method directly. To configure a FileAppender or one of its subclasses, set its properties one by one and then call activateOptions.

      Parameters:
      fileName - The path to the log file.
      append - If true will append to fileName. Otherwise will truncate fileName.
      Throws:
      IOException
    • setQWForFiles

      protected void setQWForFiles(Writer writer)
      Sets the quiet writer being used. This method is overriden by RollingFileAppender.
    • reset

      protected void reset()
      Close any previously opened file and call the parent's reset.
      Overrides:
      reset in class org.apache.log4j.WriterAppender