RollingFileAppender ClassApache log4net™ SDK Documentation
Appender that rolls log files based on size or date or both.
Inheritance Hierarchy

SystemObject
  log4net.AppenderAppenderSkeleton
    log4net.AppenderTextWriterAppender
      log4net.AppenderFileAppender
        log4net.AppenderRollingFileAppender

Namespace: log4net.Appender
Assembly: log4net (in log4net.dll) Version: 2.0.8.0-.NET 4.0
Syntax

public class RollingFileAppender : FileAppender

The RollingFileAppender type exposes the following members.

Constructors

  NameDescription
Public methodRollingFileAppender
Initializes a new instance of the RollingFileAppender class.
Top
Properties

  NameDescription
Public propertyAppendToFile
Gets or sets a flag that indicates whether the file should be appended to or overwritten.
(Inherited from FileAppender.)
Public propertyCountDirection
Gets or sets the rolling file count direction.
Public propertyDatePattern
Gets or sets the date pattern to be used for generating file names when rolling over on date.
Public propertyDateTimeStrategy
Gets or sets the strategy for determining the current date and time. The default implementation is to use LocalDateTime which internally calls through to DateTime.Now. DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying UniversalDateTime.
Public propertyEncoding
Gets or sets Encoding used to write to the file.
(Inherited from FileAppender.)
Public propertyErrorHandler
Gets or set the IErrorHandler and the underlying QuietTextWriter, if any, for this appender.
(Inherited from TextWriterAppender.)
Public propertyFile
Gets or sets the path to the file that logging will be written to.
(Inherited from FileAppender.)
Public propertyFilterHead
The filter chain.
(Inherited from AppenderSkeleton.)
Public propertyImmediateFlush
Gets or set whether the appender will flush at the end of each append operation.
(Inherited from TextWriterAppender.)
Public propertyLayout
Gets or sets the ILayout for this appender.
(Inherited from AppenderSkeleton.)
Public propertyLockingModel
Gets or sets the LockingModel used to handle locking of the file.
(Inherited from FileAppender.)
Public propertyMaxFileSize
Gets or sets the maximum size that the output file is allowed to reach before being rolled over to backup files.
Public propertyMaximumFileSize
Gets or sets the maximum size that the output file is allowed to reach before being rolled over to backup files.
Public propertyMaxSizeRollBackups
Gets or sets the maximum number of backup files that are kept before the oldest is erased.
Public propertyName
Gets or sets the name of this appender.
(Inherited from AppenderSkeleton.)
Public propertyPreserveLogFileNameExtension
Gets or sets a value indicating whether to preserve the file name extension when rolling.
Protected propertyQuietWriter
Gets or sets the QuietTextWriter where logging events will be written to.
(Inherited from TextWriterAppender.)
Protected propertyRequiresLayout
This appender requires a log4net.Layout to be set.
(Inherited from TextWriterAppender.)
Public propertyRollingStyle
Gets or sets the rolling style.
Public propertySecurityContext
Gets or sets the SecurityContext used to write to the file.
(Inherited from FileAppender.)
Public propertyStaticLogFileName
Gets or sets a value indicating whether to always log to the same file.
Public propertyThreshold
Gets or sets the threshold Level of this appender.
(Inherited from AppenderSkeleton.)
Public propertyWriter
Sets the TextWriter where the log output will go.
(Inherited from TextWriterAppender.)
Top
Methods

  NameDescription
Public methodActivateOptions
Initialize the appender based on the options set
(Overrides FileAppenderActivateOptions.)
Public methodAddFilter
Adds a filter to the end of the filter chain.
(Inherited from AppenderSkeleton.)
Protected methodAdjustFileBeforeAppend
Performs any required rolling before outputting the next event
Protected methodAppend(LoggingEvent)
Write out a logging event.
(Overrides FileAppenderAppend(LoggingEvent).)
Protected methodAppend(LoggingEvent)
Write out an array of logging events.
(Overrides FileAppenderAppend(LoggingEvent).)
Public methodClearFilters
Clears the filter list for this appender.
(Inherited from AppenderSkeleton.)
Public methodClose
Closes the appender and release resources.
(Inherited from AppenderSkeleton.)
Protected methodCloseFile
Closes the previously opened file.
(Inherited from FileAppender.)
Protected methodCloseWriter
Closes the underlying TextWriter.
(Inherited from FileAppender.)
Protected methodDeleteFile
Deletes the specified file if it exists.
Public methodDoAppend(LoggingEvent)
Performs threshold checks and invokes filters before delegating actual logging to the subclasses specific [M:Append(LoggingEvent)] method.
(Inherited from AppenderSkeleton.)
Public methodDoAppend(LoggingEvent)
Performs threshold checks and invokes filters before delegating actual logging to the subclasses specific [M:Append(LoggingEvent[])] method.
(Inherited from AppenderSkeleton.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodExistingInit
Protected methodFileExists
Test if a file exists at a specified path
Protected methodFilterEvent
Test if the logging event should we output by this appender
(Inherited from AppenderSkeleton.)
Protected methodFinalize
Cleans up all resources used by this appender.
(Overrides AppenderSkeletonFinalize.)
Public methodFlush
Flushes any buffered log data.
(Inherited from TextWriterAppender.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Protected methodGetNextOutputFileName
Get the current output file name
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodIsAsSevereAsThreshold
Checks if the message level is below this appender's threshold.
(Inherited from AppenderSkeleton.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodNextCheckDate
Get the start time of the next window for the current rollpoint
Protected methodOnClose
Close this appender instance. The underlying stream or writer is also closed.
(Inherited from FileAppender.)
Protected methodOpenFile
Creates and opens the file for logging. If StaticLogFileName is false then the fully qualified name is determined and used.
(Overrides FileAppenderOpenFile(String, Boolean).)
Protected methodPreAppendCheck
This method determines if there is a sense in attempting to append.
(Inherited from TextWriterAppender.)
Protected methodPrepareWriter
Called to initialize the file writer
(Inherited from FileAppender.)
Protected methodRenderLoggingEvent(LoggingEvent)
Renders the LoggingEvent to a string.
(Inherited from AppenderSkeleton.)
Protected methodRenderLoggingEvent(TextWriter, LoggingEvent)
Renders the LoggingEvent to a string.
(Inherited from AppenderSkeleton.)
Protected methodReset
Closes any previously opened file and calls the parent's Reset.
(Inherited from FileAppender.)
Protected methodRollFile
Renames file fromFile to file toFile.
Protected methodRollOverRenameFiles
Implements file roll.
Protected methodRollOverSize
Implements file roll base on file size.
Protected methodRollOverTime
Rollover the file(s) to date/time tagged file(s).
Protected methodSafeOpenFile
Sets and opens the file where the log output will go. The specified file must be writable.
(Inherited from FileAppender.)
Protected methodSetQWForFiles(Stream)
Sets the quiet writer used for file output
(Inherited from FileAppender.)
Protected methodSetQWForFiles(TextWriter)
Sets the quiet writer being used.
(Overrides FileAppenderSetQWForFiles(TextWriter).)
Public methodToString
Returns a String that represents the current Object.
(Inherited from Object.)
Protected methodWriteFooter
Writes a footer as produced by the embedded layout's Footer property.
(Inherited from FileAppender.)
Protected methodWriteFooterAndCloseWriter
Writes the footer and closes the underlying TextWriter.
(Inherited from TextWriterAppender.)
Protected methodWriteHeader
Writes a header produced by the embedded layout's Header property.
(Inherited from FileAppender.)
Top
Remarks

RollingFileAppender can roll log files based on size or date or both depending on the setting of the RollingStyle property. When set to Size the log file will be rolled once its size exceeds the MaximumFileSize. When set to Date the log file will be rolled once the date boundary specified in the DatePattern property is crossed. When set to Composite the log file will be rolled once the date boundary specified in the DatePattern property is crossed, but within a date boundary the file will also be rolled once its size exceeds the MaximumFileSize. When set to Once the log file will be rolled when the appender is configured. This effectively means that the log file can be rolled once per program execution.

A of few additional optional features have been added:

Note Note

For large or infinite numbers of backup files a CountDirection greater than zero is highly recommended, otherwise all the backup files need to be renamed each time a new backup is created.

When Date/Time based rolling is used setting StaticLogFileName to will reduce the number of file renamings to few or none.

Caution note Caution

Changing StaticLogFileName or CountDirection without clearing the log file directory of backup files will cause unexpected and unwanted side effects.

If Date/Time based rolling is enabled this appender will attempt to roll existing files in the directory without a Date/Time tag based on the last write date of the base log file. The appender only rolls the log file when a message is logged. If Date/Time based rolling is enabled then the appender will not roll the log file at the Date/Time boundary but at the point when the next message is logged after the boundary has been crossed.

The RollingFileAppender extends the FileAppender and has the same behavior when opening the log file. The appender will first try to open the file for writing when ActivateOptions is called. This will typically be during configuration. If the file cannot be opened for writing the appender will attempt to open the file again each time a message is logged to the appender. If the file cannot be opened for writing when a message is logged then the message will be discarded by this appender.

When rolling a backup file necessitates deleting an older backup file the file to be deleted is moved to a temporary name before being deleted.

Caution note Caution

A maximum number of backup files when rolling on date/time boundaries is not supported.

See Also

Reference