我相信rails生产的默认行为是不输出所有部分的渲染。这应该登录开发而不是生产。
但是,我在制作中看到了这一点,而且我不确定如何删除它。我的日志太吵了。我的生产环境是Heroku运行Unicorn并使用Papertrail查看我的日志。我知道Unicorn用日志做了一些不好的事情,并且为了让它们正常工作,我必须将它添加到我的production.rb:
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get('INFO')
(在此解释:http://help.papertrailapp.com/kb/configuration/unicorn)
但即使使用log_level INFO,我在所有日志中都看到了大量这些内容:
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.7ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (2.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (1.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (4.6ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (2.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.4ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (4.1ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.2ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (1.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (6.0ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.5ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.8ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_category.html.erb (1.9ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_caption.html.erb (0.3ms)
Jun 25 22:15:15 tacktile app/web.1: Rendered photos/pieces/_rights.html.erb (0.7ms)
答案 0 :(得分:19)
对于Rails 4(至少):
在config / environments / development.rb
中试试这个config.action_view.logger = nil
答案 1 :(得分:6)
使用Lograge,它会删除部分的渲染时间
答案 2 :(得分:0)
我从papertrail得到了以下答案:
我认为处理此问题的最快方法是使用我们的日志过滤 功能。这将让你放弃任何匹配正则表达式和 将使您不必进行任何应用程序配置更改。
从长远来看,你可能希望在这些消息中保持沉默 资源。 Lograge可能是你最好的选择。你可能会发现它 还删除了一些其他位但是给它一个去,让我知道什么 你想。
我知道这可能与你无关,但是对于你来说 未来使用你也可以在这里找到一些其他有用的提示。它涵盖 lograge,删除静态资产请求和不必要的操作,
如果您需要上述任何事情的帮助,请告诉我。
答案 3 :(得分:0)
我没有完全禁用actionview日志记录(如另一个答案所述),而是选择将呈现的日志记录级别更改为DEBUG
。这样,通过将日志级别设置为INFO
或更高级别,可以轻松地将其从生产日志中省略。
注意,这是针对5.2的。我不确定它是否可以在其他版本上使用。
module ViewLoggingOverride
def info(progname = nil, &block)
logger.debug(progname, &block) if logger
end
end
ActionView::LogSubscriber.include(ViewLoggingOverride)
相关的路轨代码:
https://github.com/rails/rails/blob/5-2-stable/actionview/lib/action_view/log_subscriber.rb
答案 4 :(得分:0)
这很常见,以至于在 Papertrail 通知您日志记录高峰的电子邮件中,有一个包含此确切示例的链接。
我稍微调整了正则表达式:
/\A\s{3}Rendered \w+\/_.+\.erb \(\d+\.\d+ms\)\z/
PS:我总是很奇怪,它们最初是在信息级别打印的。