## org.apache.log4j
Class FileAppender

    java.lang.Object
      org.apache.log4j.AppenderSkeleton
          org.apache.log4j.WriterAppender
              org.apache.log4j.FileAppender

All Implemented Interfaces:
  Appender, OptionHandler

Direct Known Subclasses:
  DailyRollingFileAppender, RollingFileAppender

    public class FileAppender

extends WriterAppender

FileAppender appends log events to a file.

Support for `java.io.Writer` and console appending has been deprecated and then removed. See the replacement solutions: `WriterAppender` and `ConsoleAppender`.

Author:
  Ceki Gülcü

Field Summary
`protected boolean` `bufferedIO` Do we do bufferedIO?
`protected int` `bufferSize` Determines the size of IO buffer be.
`protected boolean` `fileAppend` Controls file truncatation.
`protected java.lang.String` `fileName` 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
`FileAppender()` The default constructor does not do anything.
`FileAppender(Layout layout, java.lang.String filename)` Instantiate a FileAppender and open the file designated by `filename`.
`FileAppender(Layout layout, java.lang.String filename, boolean append)` Instantiate a FileAppender and open the file designated by `filename`.
`FileAppender(Layout layout, java.lang.String filename, boolean append, boolean bufferedIO, int bufferSize)` Instantiate a `FileAppender` and open the file designated by `filename`.

Method Summary
`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.
`protected void` `closeFile()` Closes the previously opened file.
`boolean` `getAppend()` Returns the value of the Append option.
`boolean` `getBufferedIO()` Get the value of the BufferedIO option.
`int` `getBufferSize()` Get the size of the IO buffer.
`java.lang.String` `getFile()` Returns the value of the File option.
`protected void` `reset()` 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` `setFile(java.lang.String file)` The File property takes a string value which should be the name of the file to append to.
`void` `setFile(java.lang.String fileName, boolean append, boolean bufferedIO, int bufferSize)` Sets and opens the file where the log output will go.
`protected void` `setQWForFiles(java.io.Writer writer)` 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, 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 Detail

### 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 java.lang.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 Detail

### FileAppender

    public FileAppender()

  The default constructor does not do anything.

### FileAppender

    public FileAppender(Layout layout,
                        java.lang.String filename,
                        boolean append,
                        boolean bufferedIO,
                        int bufferSize)
                 throws java.io.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:
    `java.io.IOException`

### FileAppender

    public FileAppender(Layout layout,
                        java.lang.String filename,
                        boolean append)
                 throws java.io.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:
    `java.io.IOException`

### FileAppender

    public FileAppender(Layout layout,
                        java.lang.String filename)
                 throws java.io.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:
    `java.io.IOException`

Method Detail

### setFile

    public void setFile(java.lang.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 java.lang.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 `OptionHandler`
  Overrides:
    `activateOptions` in class `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(java.lang.String fileName,
                        boolean append,
                        boolean bufferedIO,
                        int bufferSize)
                 throws java.io.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:
    `java.io.IOException`

### setQWForFiles

    protected void setQWForFiles(java.io.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 `WriterAppender`

Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.