如何在Heroku和PaperTrailapp中删除Rails应用程序的长哈希



我在Heroku中有一个Rails 5应用程序,并设置了一个PaperTrailapp帐户,比通过heroku logs -t手动检查控制台更容易检查日志。我很喜欢它。但是我觉得噪音太多。

在我用来激活rails-12因子宝石以便能够在Heroku中看到SQL日志之前,但是现在他们从Rails 5中说,不再需要。因此,现在我看到了带有问题的SQL,但它比以前更长。

Feb 24 20:38:59 myapp-staging app/web.1:  I, [2017-02-25T01:38:59.133806 #4]  INFO -- : [b2be3dbb-edb6-45f7-8686-d37304ad3782]   Rendered shared_partials/_head.html.slim (0.8ms)

这是我在造纸上看到的常见日志的示例,因此我想逐渐消除其中的某些部分,并了解如何禁用其中的某些部分。

Feb 24 20:38:59                                   # Papertrail DateTime
myapp-staging                                     # Papertrail system
app/web.1:                                        # Heroku Dyno
I,                                                # I guess this comes from the "new" Rails-12-factor way of logging, INFO, DEBUG, and so on
[2017-02-25T01:38:59.133806 #4]                   # I guess it's the DateTime from Heroku server
INFO -- :                                         # Again, the type of log, but whole word. Rails generated?
[b2be3dbb-edb6-45f7-8686-d37304ad3782]            # This is a hash that IDK where it comes from, nor what it means and what is used for
Rendered shared_partials/_head.html.slim (0.8ms)  # The actual log message of Rails app

所以我想我的问题是:

  • 那是什么哈希,这有用?如何从日志中删除它?
  • 如何从轨道日志中删除日期时间(鉴于PaperTrailapp已经给了我这些信息)(可能会带来什么不好的后果?)
  • 如何删除I,部分,该部分已经在INFO --

更新26-02

感谢@slothbear的答案,i0'已经手动检查了console heroku logs -t的日志,而且我注意到papertrail dateTime似乎实际上是Heroku datetime的重构,因为常规消息看起来像这样:

2017-02-26T18:00:09.976118+00:00                      # Heroku Datetime
app[web.1]:                                           # Heroku source[dyno]
I,                                                    # Type of log
[2017-02-26T18:00:09.976009 #4]                       # Rails Datetime
INFO -- :                                             # Again type of log
[a6612ea9-1a31-46d3-8c8d-7f93f971c379]                # Request ID
Rendered shared_partials/_top_card.html.slim (3.5ms)  # Actual Rails message

所以,知道Heroku DateTime将更难删除,我想我会删除Rails DateTime,并且也可能是请求。

长哈希是 request_id。此ID允许您在日志中跟踪单个请求。您可以通过编辑config/environments/production.rb删除ID:

config.log_tags = [ :request_id ]

DateTime格式可以设置为production.rb中的简短内容,尽管仍然存在一些字符:

config.log_formatter.datetime_format = ""

为了在Heroku-标准零件之后进行更多控制(如纸质编解释)之后,您需要自定义的日志格式器。如"配置导轨应用"指南中所述,生产默认值为Logger ::格式。您可以替换production.rb中的默认记录器:

# config.log_formatter = ::Logger::Formatter.new
class UnmultiFormatter < ::Logger::Formatter
  def call(severity, time, progname, msg)
    "unmultilog [#{severity}]: #{msg}n"
  end
end
config.log_formatter = UnmultiFormatter.new

请注意,如果设置了RAILS_LOG_TO_STDOUT环境变量,则该自定义格式化将由TaggedLogging包裹 - 默认情况下是在Heroku上设置的。

删除物品的不良后果?当调试复杂问题时,更多的信息总是更好 - 默认的日志信息是由许多聪明人设计的。如果您使用更简单的应用程序,则可能可以。理想情况下,日志查看器将让您根据需要关闭项目 - 如果调试需要它们,请将其重新打开。PaperTrail执行了一些操作:单击屏幕底部的选项,您可以关闭时间,应用程序和程序名称。

相关内容

  • 没有找到相关文章

最新更新