org.opensaml.log
Class RollingFileAppender

java.lang.Object
  extended by org.apache.log4j.AppenderSkeleton
      extended by org.apache.log4j.WriterAppender
          extended by org.apache.log4j.FileAppender
              extended by org.opensaml.log.RollingFileAppender
All Implemented Interfaces:
org.apache.log4j.Appender, org.apache.log4j.spi.OptionHandler

public class RollingFileAppender
extends org.apache.log4j.FileAppender

A minor refactoring of Log4J's DailyRollingFileAppender. The log4j appender does not provide an easy mechanism for having a file name of name.date.extension, instead it wants to do name.extension.date which on some platforms can be a pain. This appender is meant to handle this case. The file appender will create a file called filename.extension, then it will roll over the files to filename.date.extension. The default date pattern is "'.'yyyy-MM-dd" (i.e. daily roll over) and the default file extnsion is '.log'.


Field Summary
 
Fields inherited from class org.apache.log4j.FileAppender
bufferedIO, bufferSize, fileAppend, fileName
 
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
RollingFileAppender()
          Default constructor
RollingFileAppender(org.apache.log4j.Layout layout, java.lang.String filename, java.lang.String datePattern, java.lang.String fileExtension)
          Constructor.
 
Method Summary
 void activateOptions()
           
 java.lang.String getDatePattern()
          Returns the value of the DatePattern option.
 java.lang.String getFileExtension()
          Gets the extension post-pended to the file name.
 void setDatePattern(java.lang.String pattern)
          The DatePattern takes a string in the same format as expected by SimpleDateFormat.
 void setFileExtension(java.lang.String extension)
          Sets the extension post-pended to the file name.
protected  void subAppend(org.apache.log4j.spi.LoggingEvent event)
          This method differentiates DailyRollingFileAppender from its super class.
 
Methods inherited from class org.apache.log4j.FileAppender
closeFile, getAppend, getBufferedIO, getBufferSize, getFile, reset, setAppend, setBufferedIO, setBufferSize, setFile, setFile, setQWForFiles
 
Methods inherited from class org.apache.log4j.WriterAppender
append, checkEntryConditions, close, closeWriter, createWriter, getEncoding, getImmediateFlush, requiresLayout, setEncoding, setErrorHandler, setImmediateFlush, setWriter, 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
 

Constructor Detail

RollingFileAppender

public RollingFileAppender()
Default constructor


RollingFileAppender

public RollingFileAppender(org.apache.log4j.Layout layout,
                           java.lang.String filename,
                           java.lang.String datePattern,
                           java.lang.String fileExtension)
                    throws java.io.IOException
Constructor.

Parameters:
layout - the log entry layout pattern
filename - the file name
datePattern - the date pattern used to determine rolling behavior
fileExtension - the file extension to post-pend to log file name
Throws:
java.io.IOException - thrown if the file can not be created
Method Detail

getFileExtension

public java.lang.String getFileExtension()
Gets the extension post-pended to the file name.

Returns:
the log file's extension

setFileExtension

public void setFileExtension(java.lang.String extension)
Sets the extension post-pended to the file name.

Parameters:
extension - the log file's extension

setDatePattern

public void setDatePattern(java.lang.String pattern)
The DatePattern takes a string in the same format as expected by SimpleDateFormat. This options determines the rollover schedule.

Parameters:
pattern - the rollover date pattern

getDatePattern

public java.lang.String getDatePattern()
Returns the value of the DatePattern option.

Returns:
the rollover date pattern

activateOptions

public void activateOptions()
Specified by:
activateOptions in interface org.apache.log4j.spi.OptionHandler
Overrides:
activateOptions in class org.apache.log4j.FileAppender

subAppend

protected void subAppend(org.apache.log4j.spi.LoggingEvent event)
This method differentiates DailyRollingFileAppender from its super class.

Before actually logging, this method will check whether it is time to do a rollover. If it is, it will schedule the next rollover time and then rollover.

Overrides:
subAppend in class org.apache.log4j.WriterAppender