【发布时间】:2017-07-13 14:06:11
【问题描述】:
我通过 JNI 从 JAVA 调用一些 C 代码。
在我的 C 中,我做了多个 printf,我想用 log4j 记录。
printf("Could not find HID device\n");
fflush(stdout);
它们在 Eclipse 控制台中显示良好,使用 log4j 我将标准输出重定向到我的记录器:
System.setOut(new PrintStream(new OutputStreamLogger(log, Priority.DEBUG), true));
当我调用“System.out.println”时,它会写入我的日志文件。
但是 JNI printfs 没有。
他们不是在标准输出中吗?
我怎样才能把它们放在我的日志文件中?
【问题讨论】:
-
System.setOut将指向System.out.println的位置从stdout更改为您的自定义流。它实际上并没有改变stdout。 -
有没有办法捕获所有的标准输出?
标签: java c java-native-interface printf stdout