我的Apache2错误日志包含拆分为单个字符的所有错误消息行

我的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

我的意思是,所有的错误消息都被分割成一个字符长度,这些是我的错误日志中的行。例如,如果我的CGI应用程序的错误消息是“error”,我可以看到5行文本,错误消息的每一个字符对应一行,附加了referer和一些其他时间信息。由于下载进度指示器,我的错误消息来自forked cURL进程和countains\r(回车)字符。我该怎么做才能真正逐行获得cURL进程的错误输出/stderr?

幸运的是,我从stdlib中找到了Popen3的解决方案:

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 
}
我每五行只打印一次,以免错误日志增长太快