用apache + passenger + ruby​​-on-rails + mysql进行日志轮转的最佳策略是什么?

(希望我有这个问题的正确SE网站,如果没有道歉。)

我有一个使用Apache + mod_rails(乘客)部署的Ruby-on-Rails应用程序。 它使用MySQL作为数据库后端。 我正在使用SyslogLogger将RoR日志发送到syslog,并通过每日cron作业使用logrotate来旋转日志。

我发现的是,RoR应用程序在日志旋转时处于中间位置时会挂起。 我已经尝试把copytruncatelogrotateconfiguration,但它似乎也影响到apache日志(也许是因为RoR错误日志去apacheerror.log文件),可能还有MySQL日志(也许 – 这是有时难以确切地关联哪个日志导致崩溃)。

在互联网上search出现了一些不同的日志轮换解决scheme,一个是使用copytruncate键,另一个是使用cronolog ,但我还没有find一个直接解决我看到的问题。

那么是否有一个已知的解决scheme呢? 在RoR应用程序上轮转日志的“正确方法”是什么(使用apache和mod_rails进行部署)? 我是否应该将copytruncate放在与应用程序模糊相关的每个 logrotateconfiguration文件中?

这些行代替“copytruncate”,在我的rails应用程序的logrotate文件中为我工作:

  postrotate touch /your-rails-directory/tmp/restart.txt endscript 

我不会打扰发送你的Rails应用程序的日志到系统日志。 让Rails写自己的日志文件时,你有没有尝试过你的logrotateconfiguration?