gray_logger 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/gray_logger.rb CHANGED
@@ -8,6 +8,7 @@ require 'gray_logger/middleware'
8
8
  require 'gray_logger/helper_methods'
9
9
 
10
10
 
11
- if defined?(Rails) && Rails.version.to_i >= 3
12
- require 'gray_logger/railtie'
11
+ if defined?(Rails)
12
+ require 'gray_logger/rails_modules'
13
+ require 'gray_logger/railtie' if defined?(Rails::Railtie)
13
14
  end
@@ -22,11 +22,18 @@ module GrayLogger
22
22
  message_store = env["rack.gray_logger.message_store"] = GrayLogger::MessageStore.new(:level => GELF::INFO)
23
23
  status, headers, body = @app.call(env)
24
24
  rescue => e
25
- message_store.oder_exception_backtrace = e.backtrace.to_s
26
- raise e
25
+ message_store.short_message = "Error: #{e.inspect}"
26
+ message_store.exception_backtrace = e.backtrace.join("\n")
27
+ raise
27
28
  ensure
29
+ error = env['rack.exception']
30
+ if error
31
+ message_store.short_message = "Error: #{error.inspect}"
32
+ message_store.exception_backtrace = error.backtrace.join("\n")
33
+ end
28
34
  message_store.status_code = status.to_i
29
35
  gray_logger.notify!(message_store.to_message) unless gray_logger.nil?
36
+ [status, headers, body]
30
37
  end
31
38
 
32
39
  end
@@ -0,0 +1,24 @@
1
+ module GrayLogger
2
+ module RailsModules
3
+ module ActionControllerCatcher
4
+
5
+ # Sets up an alias chain to catch exceptions when Rails does
6
+ def self.included(base) #:nodoc:
7
+ base.send(:alias_method, :rescue_action_without_gray_logger, :rescue_action)
8
+ base.send(:alias_method, :rescue_action, :rescue_action_with_gray_logger)
9
+ end
10
+
11
+ private
12
+
13
+ # Overrides the rescue_action method in ActionController::Base, but does not inhibit
14
+ # any custom processing that is defined with Rails 2's exception helpers.
15
+ def rescue_action_with_gray_logger(exception)
16
+ gray_logger.exception_backtrace = exception.backtrace.join("\n")
17
+ gray_logger.short_message = "Error: #{exception.inspect}"
18
+ rescue_action_without_gray_logger(exception)
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ ActionController::Base.send(:include, GrayLogger::RailsModules::ActionControllerCatcher)
@@ -5,7 +5,7 @@ module GrayLogger
5
5
  begin
6
6
  initializer "gray_logger.configure_rails_initialization" do |app|
7
7
  configuration = YAML.load(File.read(Rails.root.join('config/gray_logger.yml')))[Rails.env]
8
- app.middleware.insert_after "Rack::Lock", "GrayLogger::Middleware", :configuration => configuration
8
+ app.middleware.insert_after "ActionDispatch::ShowExceptions", "GrayLogger::Middleware", :configuration => configuration
9
9
  end
10
10
  rescue => e
11
11
  $stderr.puts("GrayLogger not configured. Please add config/gray_logger.yml")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gray_logger
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 3
10
- version: 0.9.3
9
+ - 4
10
+ version: 0.9.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Benjamin Behr
@@ -44,6 +44,7 @@ files:
44
44
  - lib/gray_logger/message.rb
45
45
  - lib/gray_logger/message_store.rb
46
46
  - lib/gray_logger/middleware.rb
47
+ - lib/gray_logger/rails_modules.rb
47
48
  - lib/gray_logger/railtie.rb
48
49
  - lib/gray_logger/support.rb
49
50
  - lib/gray_logger.rb