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