首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4r -输出无序

Log4r -输出无序
EN

Stack Overflow用户
提问于 2013-06-17 19:32:25
回答 1查看 200关注 0票数 0

我是Rails的新手,我的Rails项目遇到了问题。我使用Log4r作为我的记录器。我还在How to configure Log4r with Rails 3.0.x?上使用了Log4r的配置。但是当我同时发送一些请求时,Log4r的输出出现错误。它是无序的。:(

有关错误输出日志文件的示例:

代码语言:javascript
复制
Started GET "/task_results.json" for 172.29.73.182 at 2013-06-17 17:36:38 +0700
Processing by TaskResultsController#index as JSON

Started GET "/favicon.ico" for 172.29.73.182 at 2013-06-17 17:36:38 +0700
Processing by ApplicationController#missing_page as 
  Parameters: {"path"=>"favicon"}
Completed 404 Not Found in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
  [1m [36m (994.0ms) [0m   [1mSELECT task_result_id,task_id,worker_id,product_id,passed,date_time,details FROM task_results ORDER BY task_result_id DESC; [0m
Completed 200 OK in 8656ms (Views: 0.2ms | ActiveRecord: 994.0ms)

我想问一下,如何配置Log4r来同步输出?或者我如何解决我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-01 17:43:07

ruby是单线程的,所以我假设你是在像unicorn这样的服务器上运行rails应用程序?

我能想到的唯一解决方案是时间戳(使用微秒),而不是使用多行Rails日志输出,它只适合开发环境中的单个请求。但即使这样也不能保证日志是“有序的”,因为它们可以在服务请求时写入,也可以在之后再次刷新缓冲区时的随机时间写入。

这是一个in-depth tutorial on how to use Log4r,它还展示了如何在日志中添加自定义时间戳,并在一行中包含所有重要信息。这可以防止其他请求在您的主请求中写入日志,并且您可以将时间戳解析为微秒,然后手动排序。但是,如果您正在运行并发应用服务器,那么顺序应该无关紧要,因为无论如何都不能保证其中的顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17146478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档