我正在处理一个仅公开以下日志配置的商业 Java API:
cplex.setOut(OutputStream arg0);
我想记录到两个流:一个文件和控制台。是否可以?
我正在处理一个仅公开以下日志配置的商业 Java API:
cplex.setOut(OutputStream arg0);
我想记录到两个流:一个文件和控制台。是否可以?
我相信是的。
例如
FileOutputStream fos = ...;
TeeOutputStream brancher = TeeOutputStream(fos, System.out);
cplex.setOut(brancher);
编写您自己的 OutputStream 实现,它将对方法的调用委托write
给两个包装好的 OutputStream,一个用于控制台,一个用于文件。
您可以使用Apache Commons IO libraryTeeOutputStream
中的一个。
简单的:
cplex.setOut(new OutputStream() {
public void write(int b) throws IOException {
outputStream1.write(b);
outputStream2.write(b);
}
});