我有一个必须记录每笔交易的应用程序。每条日志消息都会被刷新,因为我们需要记录导致崩溃的情况。我和我的同事很好奇如何在保证日志消息离开进程的同时实现缓冲的性能效果。
我们想到的是:
cat.也就是说,通常情况下:
app --logfile logfile.txt
Run Code Online (Sandbox Code Playgroud)
就是现在:
mkfifo logfifo
cat logfifo &> logfile.txt &
app --logfile logfifo
Run Code Online (Sandbox Code Playgroud)
这种方法有什么问题吗?它在我们测试时有效,但我们希望绝对确保即使原始应用程序崩溃,消息也会找到重定向文件的方式。
(我们没有应用程序的源代码,所以编程解决方案是不可能的。此外,应用程序不会写入stdout,因此直接管道到不同的命令syslog是不可能的。所以不可能.)
更新:我添加了赏金。接受的答案将不会涉及logger的原因很简单,logger是不是我所问。正如原始问题所述,我只是在寻找使用 FIFO 的问题。