org.apache.juli

## Class FileHandler

- java.lang.Object
- - java.util.logging.Handler
  - - org.apache.juli.FileHandler

- Direct Known Subclasses:
    AsyncFileHandler

      public class FileHandler
      extends Handler

  Implementation of Handler that appends log messages to a file named {prefix}{date}{suffix} in a configured directory.

  The following configuration properties are available:

  - `directory` - The directory where to create the log file. If the path is not absolute, it is relative to the current working directory of the application. The Apache Tomcat configuration files usually specify an absolute path for this property, `${catalina.base}/logs` Default value: `logs`
  - `rotatable` - If `true`, the log file will be rotated on the first write past midnight and the filename will be `{prefix}{date}{suffix}`, where date is yyyy-MM-dd. If `false`, the file will not be rotated and the filename will be `{prefix}{suffix}`. Default value: `true`
  - `prefix` - The leading part of the log file name. Default value: `juli.`
  - `suffix` - The trailing part of the log file name. Default value: `.log`
  - `bufferSize` - Configures buffering. The value of `0` uses system default buffering (typically an 8K buffer will be used). A value of `<0` forces a writer flush upon each log write. A value `>0` uses a BufferedOutputStream with the defined value but note that the system default buffering will also be applied. Default value: `-1`
  - `encoding` - Character set used by the log file. Default value: empty string, which means to use the system default character set.
  - `level` - The level threshold for this Handler. See the `java.util.logging.Level` class for the possible levels. Default value: `ALL`
  - `filter` - The `java.util.logging.Filter` implementation class name for this Handler. Default value: unset
  - `formatter` - The `java.util.logging.Formatter` implementation class name for this Handler. Default value: `java.util.logging.SimpleFormatter`
  - `maxDays` - The maximum number of days to keep the log files. If the specified value is `<=0` then the log files will be kept on the file system forever, otherwise they will be kept the specified maximum days. Default value: `-1`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_MAX_DAYS`
    `protected ReadWriteLock` | `writerLock` Lock used to control access to the writer.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FileHandler()`
    `FileHandler(String directory, String prefix, String suffix)`
    `FileHandler(String directory, String prefix, String suffix, int maxDays)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the currently open log file (if any).
    `protected void` | `closeWriter()`
    `void` | `flush()` Flush the writer.
    `protected void` | `open()` Open the new log file for the date specified by `date`.
    `protected void` | `openWriter()`
    `void` | `publish(LogRecord record)` Format and publish a `LogRecord`.

    - ### Methods inherited from class java.util.logging.Handler

      `getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_MAX_DAYS

          public static final int DEFAULT_MAX_DAYS

      See Also:
        Constant Field Values

    - #### writerLock

          protected final ReadWriteLock writerLock

      Lock used to control access to the writer.

  - ### Constructor Detail

    - #### FileHandler

          public FileHandler()

    - #### FileHandler

          public FileHandler(String directory,
                     String prefix,
                     String suffix)

    - #### FileHandler

          public FileHandler(String directory,
                     String prefix,
                     String suffix,
                     int maxDays)

  - ### Method Detail

    - #### publish

          public void publish(LogRecord record)

      Format and publish a `LogRecord`.
      Specified by:
        `publish` in class `Handler`
      Parameters:
        `record` - description of the log event

    - #### close

          public void close()

      Close the currently open log file (if any).
      Specified by:
        `close` in class `Handler`

    - #### closeWriter

          protected void closeWriter()

    - #### flush

          public void flush()

      Flush the writer.
      Specified by:
        `flush` in class `Handler`

    - #### open

          protected void open()

      Open the new log file for the date specified by `date`.

    - #### openWriter

          protected void openWriter()

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.