[prev in list] [next in list] [prev in thread] [next in thread] 

List:       log4j-user
Subject:    Erased/deleted logfile
From:       "PR-Guest3, Basel {~Basel}" <BASEL.PR-GUEST3 () Roche ! COM>
Date:       2002-10-29 15:05:39
[Download RAW message or body]

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:   <mailto:log4j-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:log4j-user-help@jakarta.apache.org>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic