Ruby on rails 从rails日志隐藏部分的呈现
我相信rails在产品中的默认行为是不输出所有部分的呈现。这应该登录到开发中,而不是生产中 然而,我在生产中看到了这一点,我不知道如何删除它。我的日志太吵了。我的生产环境是Heroku运行Unicorn并使用Papertrail查看我的日志。我知道Unicorn在日志中做了一些不可靠的事情,为了让它们正常工作,首先我必须将此添加到我的生产中。rb:Ruby on rails 从rails日志隐藏部分的呈现,ruby-on-rails,ruby-on-rails-3,heroku,unicorn,papertrail-app,Ruby On Rails,Ruby On Rails 3,Heroku,Unicorn,Papertrail App,我相信rails在产品中的默认行为是不输出所有部分的呈现。这应该登录到开发中,而不是生产中 然而,我在生产中看到了这一点,我不知道如何删除它。我的日志太吵了。我的生产环境是Heroku运行Unicorn并使用Papertrail查看我的日志。我知道Unicorn在日志中做了一些不可靠的事情,为了让它们正常工作,首先我必须将此添加到我的生产中。rb: config.logger = Logger.new(STDOUT) config.logger.level = Logger.const_
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get('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)
我从书面记录中得到了以下答案: 我认为处理这个问题的最快方法是使用我们的日志过滤 功能。这会让你放弃任何与正则表达式匹配的东西 将使您不必进行任何应用程序配置更改 从长远来看,您可能希望在 来源。Lograge可能是你最好的选择。你会找到的 也删除了一些其他的位,但试一试,让我知道什么 你想 我知道目前这可能与你无关,但是 将来使用时,您可能还会在此处找到一些其他有用的提示。它涵盖 日志记录,删除静态资产请求和不必要的操作 如果您需要上述任何帮助,请告诉我 使用时,它会删除Rails 4的部分渲染时间(至少): 在您的config/environments/development.rb中试试这个
config.action_view.logger = nil
我没有完全禁用actionview日志记录(如另一个答案中所述),而是选择将渲染的日志记录级别更改为
DEBUG
。这样,通过将日志级别设置为INFO
或更高,可以很容易地从生产日志中忽略它
注意,这是针对rails 5.2的。我不确定它是否适用于其他版本
module ViewLoggingOverride
def info(progname = nil, &block)
logger.debug(progname, &block) if logger
end
end
ActionView::LogSubscriber.include(ViewLoggingOverride)
相关轨道代码:
这是如此普遍,以至于在通知您日志峰值的书面记录电子邮件中,有一个与此确切示例的链接 我稍微调整了一下正则表达式:
/\A\s{3}Rendered \w+\/_.+\.erb \(\d+\.\d+ms\)\z/
PS:我总是觉得奇怪,它们一开始是在信息级别打印的。你做了heroku配置:add LOG\u level=“info”?大卫,是的。我试着将其设置为“debug”和“info”,以确认详细程度会发生变化。的确如此。但即使在“信息”级别,我仍然可以得到所有这些呈现的语句。我相信我可以把音量调低一点,把它们藏起来。但是,除了所有部分的这些“呈现”语句之外,详细性非常好。我想找出如何隐藏这些内容。另请参见以下答案:在这个imo不完整/不准确的答案上展开一点:Lograge是一个改变Rails默认日志格式的gem(即插即用)。它没有为每个请求记录成吨的不同行,而是尝试使用键值格式将所有相关信息放入一行(请求数据/控制器/定时等)。部分呈现日志在该过程中被禁用/跳过,因为它被认为是非必需的(至少在生产系统上)。所以,是的,我同意这是重新格式化Rails日志的最佳方式,但它不仅仅是“删除部分的渲染时间”……值得注意的是,lograge改变了日志的顺序,这对某些人来说可能并不理想。注意:这是一个“要么全有,要么全无”的选项——它不仅仅用于隐藏部分视图日志。它隐藏所有视图日志记录。(这对于调试和尝试查看特定输出非常有用,而不会隐藏在视图日志详细信息中。)