You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by "PR-Guest3, Basel {~Basel}" <BA...@Roche.COM> on 2002/10/29 16:05:39 UTC
Erased/deleted logfile
Hi all, I already posted earlier about this ...
I am trying to create an Appender which would recreate a file if it has been deleted by some crazy root user.
I extended the FileAppender and overrode its subAppend() method to accomplish this, but I am always getting
java.lang.NullPointerException
at java.io.File.<init>(File.java:180)
at com.roche.research.irci.score.log.FileAppenderCreator.subAppend(FileAppenderCreator.java:22)
at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
at org.apache.log4j.Category.callAppenders(Category.java:187)
at org.apache.log4j.Category.forcedLog(Category.java:372)
at org.apache.log4j.Category.debug(Category.java:241)
Below lies my poor code:
public class FileAppenderCreator extends FileAppender{
public FileAppenderCreator(){
}
protected void subAppend(LoggingEvent event) {
try {
File file = new File(this.getFile());
if(file.createNewFile()) {
LogLog.debug("New File created");
FileWriter fw = new FileWriter(file);
setWriter(fw);
}
} catch (IOException ex) {
LogLog.error("Error trying to create a log file in FileAppenderCreater.", ex);
}
this.qw.write(this.layout.format(event));
if(layout.ignoresThrowable()) {
String[] s = event.getThrowableStrRep();
if (s != null) {
int len = s.length;
for(int i = 0; i < len; i++) {
this.qw.write(s[i]);
this.qw.write(Layout.LINE_SEP);
}
}
}
if(this.immediateFlush) {
this.qw.flush();
}
}
}
Can someone help ?
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>