我正在使用SLF4J 1.7.7和log4j 1.7.7绑定。
在特定的实例中,我被迫在代码中提供log4j配置(因此没有log4j.properties)。
我需要创建ConsoleAppender和FileAppender实例并添加到RootLogger的appender列表。
我希望使用类似下面的内容
Map<String, String> env = System.getenv();
String logTarget = env.get("WP_LOGTARGET");
if(logTarget != null) {
if(logTarget .equalsIgnoreCase("file")) {
FileAppender fa = new FileAppender();
logger.rootLogger().addAppender(fa);
} else if(logTarget .equalsIgnoreCase("console")) {
ConsoleAppender console = new ConsoleAppender(); //create appender
logger.rootLogger().addAppender(console);
} else {
// default to System.out.println
}
} else {
// default to System.out.println
}
不幸的是,下面的代码不起作用,因为这些Logger实例位于SLF4j包中。
logger.rootLogger().addAppender(fa);
logger.rootLogger().addAppender(console);
如果我跳过SLF4J Logger类并使用log4j实现,那么它就像魅力一样。
有什么想法吗?