gray_logger 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
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