Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送到stdout、grepped的syslog的输出在中间被截断_Grep_Syslog - Fatal编程技术网

发送到stdout、grepped的syslog的输出在中间被截断

发送到stdout、grepped的syslog的输出在中间被截断,grep,syslog,Grep,Syslog,所以我记录了一些调试信息,将其发送到stdout,然后我将其grep为一个字符串。在某一点上,日志记录已经完成,应用程序正在等待一些东西,但是grep的输出在中途被截断。所以它匹配了一行,但没有输出所有的行 有没有办法强迫格雷普冲水 谢谢 更新: 似乎--line buffered会有所帮助。我认为您通过使用--line buffered标志解决了grep的问题。还要确保应用程序在每一行之后刷新标准输出。如果stdout是一个终端,那么行缓冲是默认的,但是当您将它导入另一个程序时,默认的是使用完

所以我记录了一些调试信息,将其发送到stdout,然后我将其grep为一个字符串。在某一点上,日志记录已经完成,应用程序正在等待一些东西,但是grep的输出在中途被截断。所以它匹配了一行,但没有输出所有的行

有没有办法强迫格雷普冲水

谢谢

更新:
似乎--line buffered会有所帮助。

我认为您通过使用--line buffered标志解决了grep的问题。还要确保应用程序在每一行之后刷新标准输出。如果stdout是一个终端,那么行缓冲是默认的,但是当您将它导入另一个程序时,默认的是使用完全缓冲

如果您正在将数据管道化到一个没有--line buffered标志的程序中(例如uniq),请查看stdbuf程序(http://www.pixelbeat.org/programming/stdio_buffering/stdbuf-man.html)它允许您修改任何程序的缓冲选项

有关此问题和一些常见解决方案的详细概述,请参阅