我的Apache2错误日志包含拆分为单个字符的所有错误消息行
我的意思是,所有的错误消息都被分割成一个字符长度,这些是我的错误日志中的行。例如,如果我的CGI应用程序的错误消息是“error”,我可以看到5行文本,错误消息的每一个字符对应一行,附加了referer和一些其他时间信息。由于下载进度指示器,我的错误消息来自forked cURL进程和countains\r(回车)字符。我该怎么做才能真正逐行获得cURL进程的错误输出/stderr?幸运的是,我从stdlib中找到了Popen3的解决方案:我的Apache2错误日志包含拆分为单个字符的所有错误消息行,apache,curl,logging,process,stderr,Apache,Curl,Logging,Process,Stderr,我的意思是,所有的错误消息都被分割成一个字符长度,这些是我的错误日志中的行。例如,如果我的CGI应用程序的错误消息是“error”,我可以看到5行文本,错误消息的每一个字符对应一行,附加了referer和一些其他时间信息。由于下载进度指示器,我的错误消息来自forked cURL进程和countains\r(回车)字符。我该怎么做才能真正逐行获得cURL进程的错误输出/stderr?幸运的是,我从stdlib中找到了Popen3的解决方案: require "open3" cmd=%Q{cur
require "open3"
cmd=%Q{curl -b cookie.txt 'http://www.example.com/file/afancyfileid/yetanotherfilename.avi' -L -O -J}
Open3.popen3(cmd) {|stdin, stdout, stderr, wait_thr|
pid = wait_thr.pid # pid of the started process.
line_no=0
stderr.each_char do |c|
if c=="\r" then
line_no+=1
STDERR.puts if line_no % 5 == 0
else
STDERR.print c if line_no % 5 == 0
end
end
exit_status = wait_thr.value
}
我每五行只打印一次,以免错误日志增长太快