class Refile::CustomLogger
@api private
Constants
- LOG_FORMAT
Public Class Methods
new(app, prefix, logger_proc)
click to toggle source
# File lib/refile/custom_logger.rb, line 8 def initialize(app, prefix, logger_proc) @app = app @prefix = prefix @logger_proc = logger_proc end
Public Instance Methods
call(env)
click to toggle source
# File lib/refile/custom_logger.rb, line 14 def call(env) began_at = Time.now status, header, body = @app.call(env) body = Rack::BodyProxy.new(body) { log(env, status, began_at) } [status, header, body] end
Private Instance Methods
fallback_logger()
click to toggle source
# File lib/refile/custom_logger.rb, line 44 def fallback_logger @fallback_logger ||= Logger.new(nil) end
log(env, status, began_at)
click to toggle source
# File lib/refile/custom_logger.rb, line 23 def log(env, status, began_at) now = Time.now logger.info do format( LOG_FORMAT, @prefix, now.strftime("%F %T %z"), env["REQUEST_METHOD"], env["PATH_INFO"], env["QUERY_STRING"].empty? ? "" : "?" + env["QUERY_STRING"], status.to_s[0..3], (now - began_at) * 1000 ) end end
logger()
click to toggle source
# File lib/refile/custom_logger.rb, line 39 def logger @logger ||= @logger_proc.call @logger || fallback_logger end