1

我正在处理一个仅公开以下日志配置的商业 Java API:

cplex.setOut(OutputStream arg0);

我想记录到两个流:一个文件和控制台。是否可以?

4

4 回答 4

11

我相信是的。

我会使用apache commons io lib

例如

FileOutputStream fos = ...;
TeeOutputStream brancher = TeeOutputStream(fos, System.out);
cplex.setOut(brancher);
于 2010-03-26T11:13:40.083 回答
3

编写您自己的 OutputStream 实现,它将对方法的调用委托write给两个包装好的 OutputStream,一个用于控制台,一个用于文件。

于 2010-03-26T11:09:27.470 回答
2

您可以使用Apache Commons IO libraryTeeOutputStream中的一个。

于 2010-03-26T11:13:34.390 回答
0

简单的:

cplex.setOut(new OutputStream() {

    public void write(int b) throws IOException {
        outputStream1.write(b);
        outputStream2.write(b);
    }
});
于 2012-06-28T02:32:09.660 回答