FileAppender ClassApache log4net™ SDK Documentation
Appends logging events to a file.
Inheritance Hierarchy

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

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

public class FileAppender : TextWriterAppender

The FileAppender type exposes the following members.

Constructors

  NameDescription
Public methodFileAppender
Default constructor
Public methodFileAppender(ILayout, String) Obsolete.
Construct a new appender using the layout and file specified. The file will be appended to.
Public methodFileAppender(ILayout, String, Boolean) Obsolete.
Construct a new appender using the layout, file and append mode.
Top
Properties

  NameDescription
Public propertyAppendToFile
Gets or sets a flag that indicates whether the file should be appended to or overwritten.
Public propertyEncoding
Gets or sets Encoding used to write to the file.
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.
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.
Public propertyName
Gets or sets the name of this appender.
(Inherited from AppenderSkeleton.)
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 propertySecurityContext
Gets or sets the SecurityContext used to write to the 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
Activate the options on the file appender.
(Overrides AppenderSkeletonActivateOptions.)
Public methodAddFilter
Adds a filter to the end of the filter chain.
(Inherited from AppenderSkeleton.)
Protected methodAppend(LoggingEvent)
This method is called by the DoAppend(LoggingEvent) method.
(Overrides TextWriterAppenderAppend(LoggingEvent).)
Protected methodAppend(LoggingEvent)
This method is called by the DoAppend(LoggingEvent) method.
(Overrides TextWriterAppenderAppend(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.
Protected methodCloseWriter
Closes the underlying TextWriter.
(Overrides TextWriterAppenderCloseWriter.)
Protected methodStatic memberConvertToFullPath
Convert a path into a fully qualified path.
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 methodFilterEvent
Test if the logging event should we output by this appender
(Inherited from AppenderSkeleton.)
Protected methodFinalize
Finalizes this appender by calling the implementation's Close method.
(Inherited from AppenderSkeleton.)
Public methodFlush
Flushes any buffered log data.
(Inherited from TextWriterAppender.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
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 methodOnClose
Close this appender instance. The underlying stream or writer is also closed.
(Overrides TextWriterAppenderOnClose.)
Protected methodOpenFile
Sets and opens the file where the log output will go. The specified file must be writable.
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
(Overrides TextWriterAppenderPrepareWriter.)
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.
(Overrides TextWriterAppenderReset.)
Protected methodSafeOpenFile
Sets and opens the file where the log output will go. The specified file must be writable.
Protected methodSetQWForFiles(Stream)
Sets the quiet writer used for file output
Protected methodSetQWForFiles(TextWriter)
Sets the quiet writer being used.
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.
(Overrides TextWriterAppenderWriteFooter.)
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.
(Overrides TextWriterAppenderWriteHeader.)
Top
Remarks

Logging events are sent to the file specified by the File property.

The file can be opened in either append or overwrite mode by specifying the AppendToFile property. If the file path is relative it is taken as relative from the application base directory. The file encoding can be specified by setting the Encoding property.

The layout's Header and Footer values will be written each time the file is opened and closed respectively. If the AppendToFile property is then the file may contain multiple copies of the header and footer.

This 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.

The FileAppender supports pluggable file locking models via the LockingModel property. The default behavior, implemented by FileAppenderExclusiveLock is to obtain an exclusive write lock on the file until this appender is closed. The alternative models only hold a write lock while the appender is writing a logging event (FileAppenderMinimalLock) or synchronize by using a named system wide Mutex (FileAppenderInterProcessLock).

All locking strategies have issues and you should seriously consider using a different strategy that avoids having multiple processes logging to the same file.

See Also

Reference