我正在创建一个非常复杂的应用程序,其中包含非常复杂和繁重的后台处理工作者。这都是关于视频转码和使用大型视频文件做很多其他事情所以我需要确保所有日志消息都易于访问和清晰。在这里浏览sidekiq.log文件对我来说不是一个选项。
我能想象的最好的解决方案是让它像Travis CI上的输出记录器一样工作 - 它会以某种方式逐个捕获所有PUTS和LOGGER消息并将它们保存到数据库中(我不知道是否这就是他们如何在travis上做到这一点,但对我来说 - 这将是完美的。)
我在互联网上找到的唯一有用的主题是问题/答案How can I capture STDOUT to a string?,但我只想在整个过程结束时保存整个输出。我需要的是将输出一个消息保存一个(以某种方式监听任何put / logger出现?)并触发一个save方法。
任何提示都非常感激。
答案 0 :(得分:0)
您可能需要vx-common-spawn gem。它是开源的一部分" Vexor CI"项目。它的作用就像自述文件:
spawn "ls -la" do |output| # here is your command that writes in stdout
# This will be called each time something added to stdout
print output
end