如何转储写入磁盘的数据

题 :

如何将从应用程序写入的数据(字节stream)转储到文件系统? (像tcpdump,但IO /文件)。

理想情况下,它应该能够“附加”并转储它正在编写的stream,而不需要应用程序的特定configuration。

背景:

我有一个部署在某些服务器上的Java应用程序。 这个应用程序正在使用JCL + Log4j来logging各种技术的东西。

在其中的一些我遇到一个相当不常见的问题:经常,日志文件被二进制数据污染。

相同的应用程序,相同的configuration,相同的硬件,相同的OS …不同的行为

我的日志都在这里:如果我用“string”处理日志文件,每个事情都恢复正常,但是就我所知,假设有90%的二进制垃圾,预处理这些文件需要花费大量的时间。

目标:

Beeing能够找出问题出在Java应用程序/ JVM或OS /硬件中

使用strace,如:

strace -p PID -e write -s 1024 

它会转储进程的写入系统调用。 最大1024string大小。