0
我想允許用戶指定他們想要寫入Windows事件查看器的級別,但是我還將日誌寫入控制檯和輸出文件。是否有辦法將所有日誌寫入文件和控制檯,並且只將更高級別的日誌寫入事件查看器,而不必具有兩個單獨的Logger變量。Log4j Windows事件查看器日誌記錄
private static PatternLayout myLayout
= new PatternLayout("%-4r [%t] %-5p %c %x - %m%n");
// Read from INI file
private static boolean enableWindowsEventLogging;
static final Logger log4jLogger = Logger.getLogger(Main.class);
private static NTEventLogAppender eventLogAppender = new NTEventLogAppender();
private static RollingFileAppender rollingFileAppender;
private static ConsoleAppender consoleAppender = new ConsoleAppender(myLayout);
....
if(enableWindowsEventLogging)
{
switch(Integer.valueOf(thisProperties.getProperty("warningLevel")))
{
case 1: log4jLogger.setLevel(Level.ALL); break;
case 2: log4jLogger.setLevel(Level.FATAL); break;
case 3: log4jLogger.setLevel(Level.ERROR); break;
case 4: log4jLogger.setLevel(Level.WARN); break;
case 5: log4jLogger.setLevel(Level.INFO); break;
case 6: log4jLogger.setLevel(Level.DEBUG); break;
};
// Event viewer logging
log4jLogger.addAppender(eventLogAppender);
}else
log4jLogger.setLevel(Level.OFF);
....
rollingFileAppender = new RollingFileAppender(myLayout,"\\logs\\log4joutput.log", true);
我使用Apache 1.2.12的log4j
好。謝謝。我發現我需要使用'appendername.setThreshold()' – themaniac27