sl4j日志级别appenders的Writer

时间:2015-01-08 18:18:27

标签: java slf4j

当使用sl4j时,我通常会使用例如编写调试消息来编写调试消息。 log.debug("some message")其中logLogger个实例。但是,我有一个第三方API(无法修改)提供类似于:

的方法
public interface Example {
    public void debugPrint();
    public void debugPrint(Writer writer);
}

无参数方法写入System.out而另一方写入自定义编写器。有没有办法获得我可以传递给Writer的{​​{1}}实例,这相当于写入Example.debugPrint(Writer)所写的任何appender?

1 个答案:

答案 0 :(得分:1)

如果这是JDK Writer,你可以添加(写)具体的子类,它将使用适当的Appender


我很抱歉,现在它看起来对我来说,它必须反过来 - 编写您的自定义Writer,您将传递给debugPrint,使用已配置的Writer#write()方法日志工厂,所以代码大纲将如下所示:

class Slf4jBackedWriter implements Writer {

    private final static Logger log = LoggerFactory.getLogger(Slf4jBackedWriter.class);

    @Override
    public void write(char[] cbuf, int off, int len) throws IOException {            
    } // etc

}