Sinatra Ruby使用自定义信息为每个请求提供一行日志

时间:2018-03-01 13:14:42

标签: ruby sinatra

我有一个应用程序是Sinatra应用程序。我想在一行上记录每个请求的日志,目前每个请求只显示一行(请求本身)。但我想在其上添加自定义信息。

这是我现在的行:

[02/Feb/2018:11:52:32 +0000] "GET /feed/name.csv HTTP/1.0" 200 - 0.1620
2400:gh654:32:6532:0:0:a43e:404f, 0.0.0.0:2017 - - [05/Feb/2018:13:32:48 +0000] "HEAD / HTTP/1.0" 404 18 0.0676
2400:gh654:32:6532:0:0:a43e:414d, 0.0.0.0:2017 - - [05/Feb/2018:13:32:48 +0000] "HEAD / HTTP/1.0" 404 18 0.0041

我想用以下内容对其进行转换:

INFO  2018-03-02T14:03:36Z [main] [066843] [8a6e846f-45b7-433d-9d98-21c8c0766ad7] method=GET path= /some/path.csv format=csv action=action_name status=200 duration=459.97 view=154.94 db=172.96 user=user_id ip=user_id on=protocol_used agent=agent_used params=params_used

过去在rails应用程序中执行此操作我使用过lograge但似乎sinatra应用程序不支持它。

你们有没有必要在sinatra日志中添加自定义信息?

这是我的日志记录配置:

configure do
  enable :logging
  file = File.new("#{RAILS_ROOT}/log/#{settings.environment}.log", 'a+')
  file.sync = true
  use Rack::CommonLogger, file
  set :show_exceptions, true
  set :logging,  true

  ActiveRecord::Base.logger = Logger.new("#{RAILS_ROOT}/log/#{settings.environment}.log")
end

0 个答案:

没有答案