class Rack::Logjam::Logger
Public Instance Methods
log_request( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 8 def log_request( env ) _logger.info <<-end_info [#{ANSI.green { 'api' }}] #{ANSI.cyan { '--- Request Env ---' }} #{ANSI.magenta { JSON.pretty_generate( request_log_data( env )) }} [#{ANSI.green { 'api' }}] #{ANSI.cyan { '--- Request Body ---' }} #{ANSI.cyan { formatted_request_body( env ) }} end_info end
log_response( env, status, headers, response )
click to toggle source
# File lib/rack/logjam/logger.rb, line 17 def log_response( env, status, headers, response ) _logger.info <<-end_info [#{ANSI.green { 'api' }}] #{ANSI.cyan { '--- Response ---' }} Status: #{status} Headers: #{headers.inspect} Body: #{ANSI.cyan { format_body( (response.body rescue response), accept( env ), env ) }} end_info end
Protected Instance Methods
_logger()
click to toggle source
# File lib/rack/logjam/logger.rb, line 88 def _logger ::Rack::Logjam::logger end
accept( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 47 def accept( env ) env['HTTP_ACCEPT'] end
content_type( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 43 def content_type( env ) env['CONTENT_TYPE'] end
fetch_filter( format, body )
click to toggle source
# File lib/rack/logjam/logger.rb, line 71 def fetch_filter( format, body ) klass, filters = Rack::Logjam::Filters.get( format ) klass.new( body, filters ) end
fetch_formatter( format, body )
click to toggle source
# File lib/rack/logjam/logger.rb, line 76 def fetch_formatter( format, body ) return Rack::Logjam::Formatters::Empty if body.nil? || body.strip.empty? return Rack::Logjam::Formatters::Array if body.is_a?( Array ) Rack::Logjam::Formatters.get( format ) end
format_body( body, format, env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 63 def format_body( body, format, env ) filter = fetch_filter( format, body ) filtered = filter.render formatter = fetch_formatter( format, body ).new( filtered, format ) formatter.render end
formatted_request_body( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 59 def formatted_request_body( env ) format_body( rack_input_content( env ), content_type( env ), env ) end
path_info( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 51 def path_info( env ) env['PATH_INFO'] end
query( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 55 def query( env ) URI.unescape( env['QUERY_STRING'] ) end
rack_input_content( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 82 def rack_input_content( env ) ( rack_input = env['rack.input'] ).read.tap do |content| rack_input.rewind end end
request_log_data( env )
click to toggle source
# File lib/rack/logjam/logger.rb, line 29 def request_log_data( env ) request_data = { content_type: content_type( env ), content_length: env['CONTENT_LENGTH'], accept: accept( env ), accept_version: env['HTTP_ACCEPT_VERSION'], method: env['REQUEST_METHOD'], path: path_info( env ), query: query( env ) } #request_data[:user_id] = current_user.id if current_user request_data end