class RailsGraylogger::LogSubscriber
Public Instance Methods
buffered_messages()
click to toggle source
# File lib/rails-graylogger/log_subscriber.rb, line 21 def buffered_messages unless RailsGraylogger::Logger.request_buffer.blank? RailsGraylogger::Logger.request_buffer.map{ |item| item[:short_message] unless item[:short_message].blank? }.compact.join("\n") else [] end end
process_action(event)
click to toggle source
# File lib/rails-graylogger/log_subscriber.rb, line 4 def process_action(event) payload = event.payload payload[:path] = URI(payload[:path]).path if payload[:path] payload[:ipaddress] = RequestStore.store[:ipaddress] payload[:x_forwarded_for] = RequestStore.store[:x_forwarded_for] payload[:duration] = event.duration.round payload[:status] = status_from_exception(payload[:exception]) unless payload[:status].present? message = RailsGraylogger::Message.from_event_payload(payload) message.tags = RailsGraylogger::Logger.request_tags message.full_message = buffered_messages RailsGraylogger::Notifier.notify!(message.to_hash) rescue => ex Rails.logger.error "Exception in RailsGraylogger: #{ex.class}: #{ex.message}" end
status_from_exception(exception)
click to toggle source
# File lib/rails-graylogger/log_subscriber.rb, line 29 def status_from_exception(exception) if exception.present? exception_class_name = exception.first ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name) end end