使用log4j appender到org.slf4j.Logger

时间:2014-12-12 17:54:32

标签: java logging

我正在使用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实现,那么它就像魅力一样。

有什么想法吗?

0 个答案:

没有答案