TempFileAppenderpublic class TempFileAppender extends AppenderSkeleton TempFileAppender creates new unique file for each logging statement. |
Fields Summary |
---|
public static final String | PATH_OPTIONA string constant used in naming the option for setting the
directory where the log files will be created. Current value
of this string constant is Path. java.io.tmpdir directory
will be used, if ommited. | protected String | pathThe default path is actual directory. | public static final String | PREFIX_OPTIONA string constant used in naming the option for setting the
prefix of the log files. It has to have at least 3 characters!
Current value of this string constant is Prefix. | protected String | prefixThe default path is actual directory. | public static final String | SUFFIX_OPTIONA string constant used in naming the option for setting the
suffix of the log files. Current value of this string constant
is Suffix. | protected String | suffixThe default path is actual directory. | protected File | dirDefault dir |
Constructors Summary |
---|
public TempFileAppender()The default constructor simply calls its parent's constructor.
super();
|
Methods Summary |
---|
public void | append(org.apache.log4j.spi.LoggingEvent event)This method is called by {@link AppenderSkeleton#doAppend}
method.
Whenever this method is called, new unique file is created
with specified prefix and suffix. The file is closed afterwards.
The format of the output will depend on this appender's
layout.
if(!checkEntryConditions()) {
return;
}
subAppend(event);
| protected boolean | checkEntryConditions()This method determines if there is a sense in attempting to append.
return true;
| public void | close()
/* nothing to do */
| public java.lang.String[] | getOptionStrings()Retuns the option names for this component
return OptionConverter.concatanateArrays(super.getOptionStrings(),
new String[] {PATH_OPTION,PREFIX_OPTION,SUFFIX_OPTION});
| public boolean | requiresLayout()
return false;
| public void | setOption(java.lang.String key, java.lang.String value)Set TempFileAppender specific options.
The recognized options are Path, Prefix and Suffix,
i.e. the values of the string constants {@link #PATH_OPTION},
{@link #PREFIX_OPTION} and respectively {@link #SUFFIX_OPTION}.
The options of the super class {@link AppenderSkeleton} are also
recognized.
super.setOption(key, value);
if(key.equalsIgnoreCase(PATH_OPTION)) {
path = value;
if(path==null) {
errorHandler.error("Path cannot be empty!",null,0);
}
dir = new File(path);
if(!(dir.exists() && dir.isDirectory() && dir.canWrite())) {
errorHandler.error("Cannot write to directory " + path + "!",null,0);
}
}
else if(key.equalsIgnoreCase(PREFIX_OPTION)) {
if(value!=null && value.length()>=3) {
prefix = value;
} else {
errorHandler.error("Prefix cannot be shorter than 3 characters!",
null,0);
}
}
else if(key.equalsIgnoreCase(SUFFIX_OPTION)) {
if(value!=null && value.length()>=1) {
suffix = value;
} else {
errorHandler.error("Suffix cannot be empty!",null,0);
}
}
| protected void | subAppend(org.apache.log4j.spi.LoggingEvent event)This method does actual writing
try {
File tmp = File.createTempFile(prefix,suffix,dir);
Writer out = new BufferedWriter(new FileWriter(tmp));
out.write(event.message);
out.close();
/* this Appender is not supposed to be used for logging of Exceptions */
} catch (Exception e) {
errorHandler.error("Error during creation of temporary File!",e,1);
}
|
|