Sha256: ede1ca8dce982d6d3e08f5cf83b880525dcbd1b1c6d6a9c5cf6f230682da5b77
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
module TreasureData module Logger module Agent ACCESS_LOG_PARAM_ENV = if defined? Rails if Rails.respond_to?(:version) && Rails.version =~ /^3/ # Rails 3 'action_dispatch.request.path_parameters' else # Rails 2 'action_controller.request.path_parameters' end else # Rack default 'rack.routing_args' end ACCESS_LOG_PRESET_PARAM_KEYS = { 'controller' => :controller, 'action' => :action, } ACCESS_LOG_PRESET_ENV_KEYS = { 'ip' => 'REMOTE_ADDR', 'method' => 'REQUEST_METHOD', 'uri' => 'REQUEST_URI', 'referer' => 'HTTP_REFERER', 'ua' => 'HTTP_USER_AGENT' } def self.enable_access_log(tag) Middleware.before do |env| data = {} Thread.current['td.access_log'] = data env['td.access_log'] = data env['td.access_time'] = Time.now end Middleware.after do |env,result| data = env['td.access_log'] || {} access_time = env['td.access_time'] # add 'elapsed' column if access_time elapsed = Time.now - access_time data['elapsed'] = elapsed # set 'time' column to access time data['time'] = access_time end ACCESS_LOG_PRESET_ENV_KEYS.each_pair {|key,val| data[key] ||= env[val] if env[val] } m = env[ACCESS_LOG_PARAM_ENV] ACCESS_LOG_PRESET_PARAM_KEYS.each_pair {|key,val| data[key] ||= m[val] if m[val] } # result code data['status'] ||= result[0].to_i TreasureData.log(tag, data) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
td-logger-0.2.4 | lib/td/logger/agent/access_log.rb |