Hello everyone ;

I am trying to configure my appenders via log4j api. Besides, I want to
change behavior of logger during runtime.
But I got following warning when I run my code.

log4j:ERROR No output stream or file set for the appender named [logFile].
log4j:ERROR No output stream or file set for the appender named [logFile].
log4j:ERROR No output stream or file set for the appender named [errorFile].



What is wrong? Can anybody tell me?

class Log {

   private static Logger logger = null;
   private static PatternLayout layout = null;

   public static Logger getLogger() {
       if(logger == null){
           logger = Logger.getLogger("DispLogger");
           BasicConfigurator.configure();
           logger.addAppender(getLogAppender());
           logger.addAppender(getErrorAppender());
       }
       return logger;
   }


   private static Appender getLogAppender(){
       RollingFileAppender appder = new RollingFileAppender();
       appder.setName("logFile");
       appder.setFile("log" + File.separator + "dispatcherLog.txt");
       appder.setThreshold(Level.DEBUG);
       appder.setMaxFileSize("1MB");
       appder.setMaxBackupIndex(5);
       appder.setAppend(true);
       appder.setLayout(getLayout());
       return appder;
   }

   private static Appender getErrorAppender(){
       RollingFileAppender appder = new RollingFileAppender();
       appder.setName("errorFile");
       appder.setFile("log" + File.separator + "dispatcherError.txt");
       appder.setThreshold(Level.ERROR);
       appder.setMaxFileSize("1MB");
       appder.setMaxBackupIndex(5);
       appder.setAppend(true);
       appder.setLayout(getLayout());
       return appder;
   }

   private static Appender getConsoleAppender(){
       ConsoleAppender appder = new ConsoleAppender();
       appder.setName("console");
       appder.setThreshold(Level.DEBUG);
       appder.setTarget("System.out");
       appder.setLayout(getLayout());
       return appder;
   }

}

Reply via email to