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;
}
}