Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
Ruby on rails Log4r-输出无序_Ruby On Rails_Logging_Config_Output_Log4r - Fatal编程技术网

Ruby on rails Log4r-输出无序

Ruby on rails Log4r-输出无序,ruby-on-rails,logging,config,output,log4r,Ruby On Rails,Logging,Config,Output,Log4r,我是Rails的新手,我的Rails项目遇到了问题。我使用Log4r作为我的记录器。我还在上为Log4r使用了config。但是当我同时发送一些请求时,Log4r的输出有错误。它是无序的( 有关错误输出日志文件的示例: 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 G

我是Rails的新手,我的Rails项目遇到了问题。我使用Log4r作为我的记录器。我还在上为Log4r使用了config。但是当我同时发送一些请求时,Log4r的输出有错误。它是无序的(

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

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以同步输出?或者如何解决我的问题?

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

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

这是一个示例,它还显示了如何将自定义时间戳添加到日志中,并将所有重要信息放在一行中。这可以防止其他请求在主请求中写入日志,并且您可以将时间戳分辨率设置为微秒,然后手动进行排序。但是,如果您正在运行当前的应用程序服务器,因为无论如何都不能保证订单