gray_logger 0.11.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gray_logger.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'gelf'
2
2
 
3
3
  require 'gray_logger/support'
4
+ require 'gray_logger/proxy'
5
+ require 'gray_logger/configuration'
4
6
  require 'gray_logger/bucket'
5
7
  require 'gray_logger/message'
6
8
  require 'gray_logger/logger'
@@ -11,3 +13,20 @@ if defined?(Rails)
11
13
  require 'gray_logger/rails_modules'
12
14
  require 'gray_logger/railtie' if defined?(Rails::Railtie)
13
15
  end
16
+
17
+ module GrayLogger
18
+
19
+ class << self
20
+ attr_accessor :configuration
21
+ end
22
+
23
+ # GrayLogger.configure({:host => '127.0.0.1'}) do |config|
24
+ # config.port = "11200"
25
+ # end
26
+ def self.configure(config)
27
+ self.configuration = ::GrayLogger::Configuration.new(config)
28
+ yield(configuration) if block_given?
29
+ end
30
+
31
+ end
32
+
@@ -0,0 +1,26 @@
1
+ module GrayLogger
2
+ class Configuration
3
+ include ::GrayLogger::Support
4
+
5
+ attr_accessor :host, :port, :size, :automatic_logging, :options
6
+ def initialize(configuration_hash)
7
+ defaults = {
8
+ :size => "WAN",
9
+ :facility => "facility-not-defined"
10
+ }
11
+
12
+ config = symbolize_keys(configuration_hash)
13
+ config = defaults.merge(config)
14
+
15
+ [:host, :port, :size, :automatic_logging].each do |method|
16
+ send("#{method}=", config.delete(method))
17
+ end
18
+ self.options = config
19
+ end
20
+
21
+ def automatic_logging?
22
+ @automatic_logging.nil? ? true : !!@automatic_logging
23
+ end
24
+
25
+ end
26
+ end
@@ -1,8 +1,18 @@
1
1
  module GrayLogger
2
2
  module HelperMethods
3
+
4
+ protected
5
+ def gray_logger_proxy
6
+ if Rails.version.to_i >= 3
7
+ env["rack.gray_logger.proxy"]
8
+ else
9
+ request.env["rack.gray_logger.proxy"]
10
+ end
11
+ end
12
+
3
13
  def gray_logger
4
- Rack::GrayLogger.proxy.gray_logger
14
+ gray_logger_proxy.gray_logger
5
15
  end
6
- protected :gray_logger
16
+
7
17
  end
8
18
  end
@@ -2,34 +2,24 @@ module GrayLogger
2
2
 
3
3
  class Logger < GELF::Logger
4
4
  include ::GrayLogger::Support
5
- attr_reader :buckets, :automatic_logging
5
+ attr_reader :buckets, :configuration
6
6
 
7
- def initialize(configuration={})
8
- automatic_logging = configuration.delete(:automatic_logging)
9
- @automatic_logging = automatic_logging.nil? ? true : automatic_logging
10
-
11
- defaults = {
12
- :size => "WAN",
13
- :facility => "facility-not-defined"
14
- }
15
-
16
- config = symbolize_keys(configuration)
17
- config = defaults.merge(config)
18
-
19
- super(config.delete(:host), config.delete(:port), config.delete(:size), config)
7
+ def initialize(configuration)
8
+ super(configuration.host, configuration.port, configuration.size, configuration.options)
9
+ @configuration = configuration
20
10
 
21
11
  @buckets = {}
22
12
  end
23
13
 
24
- def automatic_logging?
25
- !!@automatic_logging
26
- end
27
-
28
14
  def reset!
29
15
  @buckets = {}
30
16
  self
31
17
  end
32
18
 
19
+ def automatic_logging?
20
+ configuration.automatic_logging?
21
+ end
22
+
33
23
  # logger.after_request_log << {:my_field => 'field content'}
34
24
  # logger.after_request_log.my_field = 'field content'
35
25
  def after_request_log
@@ -0,0 +1,51 @@
1
+ module GrayLogger
2
+ class Proxy
3
+ attr_accessor :proxied_logger, :gray_logger
4
+
5
+ def initialize(attributes={})
6
+ self.proxied_logger = attributes[:proxied_logger]
7
+ self.gray_logger = attributes[:gray_logger]
8
+ end
9
+
10
+ # def debug(*args)
11
+ # if proxied_logger.nil?
12
+ # gray_logger.send(:debug, *args)
13
+ # else
14
+ # after_request_log.append_to(:log_file, "[debug] #{args[0]}") unless gray_logger.nil?
15
+ # proxied_logger.send(:debug, *args)
16
+ # end
17
+ # end
18
+ GELF::Levels.constants.each do |const|
19
+ class_eval <<-EOT, __FILE__, __LINE__ + 1
20
+ def #{const.downcase}(*args)
21
+ if proxied_logger.nil?
22
+ gray_logger.send(:#{const.downcase}, *args)
23
+ else
24
+ gray_logger.after_request_log.append_to(:log_file, "[#{const.downcase}] \#{args[0]}") unless gray_logger.nil?
25
+ proxied_logger.send(:#{const.downcase}, *args)
26
+ end
27
+ end
28
+ EOT
29
+ end
30
+
31
+ private
32
+ # delegate every method the proxy doesn't know to gray_logger and proxied_logger. let them handle this.
33
+ def method_missing(method_name, *args, &block)
34
+ unless proxied_logger.nil?
35
+ begin
36
+ proxied_logger.send(method_name, *args, &block)
37
+ rescue => e
38
+ proxied_logger.error(e.backtrace.join("\n"))
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ def self.proxy= proxy
45
+ @proxy = proxy
46
+ end
47
+
48
+ def self.proxy
49
+ @proxy ||= ::GrayLogger::Proxy.new
50
+ end
51
+ end
@@ -1,21 +1,19 @@
1
1
  module Rack
2
2
  module GrayLogger
3
+
3
4
  class Middleware
4
5
  include ::GrayLogger::Support
5
6
 
6
7
  attr_accessor :gray_logger
7
8
 
8
- def initialize(app, options={})
9
+ def initialize(app)
9
10
  @app = app
10
-
11
- configuration = symbolize_keys(options.delete(:configuration))
12
- self.gray_logger = ::GrayLogger::Logger.new(configuration)
13
-
14
- ::Rack::GrayLogger.proxy.gray_logger = gray_logger
11
+ ::GrayLogger.proxy.gray_logger = ::GrayLogger::Logger.new(::GrayLogger.configuration.dup)
15
12
  end
16
13
 
17
14
  def call(env)
18
-
15
+ env["rack.gray_logger.proxy"] = ::GrayLogger.proxy
16
+ gray_logger = ::GrayLogger.proxy.gray_logger
19
17
  begin
20
18
  status, headers, body = @app.call(env)
21
19
  rescue => e
@@ -23,7 +21,7 @@ module Rack
23
21
  raise
24
22
  ensure
25
23
  req = Rack::Request.new(env)
26
- if gray_logger.automatic_logging?
24
+ if ::GrayLogger.configuration.automatic_logging?
27
25
  gray_logger.log_exception(env['rack.exception'])
28
26
  gray_logger.after_request_log.status_code = status.to_i
29
27
  gray_logger.after_request_log.short_message = "Request: #{req.path} (#{status.to_i})" if gray_logger.after_request_log[:short_message].nil?
@@ -38,61 +36,5 @@ module Rack
38
36
 
39
37
  end
40
38
 
41
- class Proxy
42
- attr_accessor :proxied_logger, :gray_logger
43
-
44
- def initialize(attributes={})
45
- self.proxied_logger = attributes[:proxied_logger]
46
- self.gray_logger = attributes[:gray_logger]
47
- end
48
-
49
- # def debug(*args)
50
- # if proxied_logger.nil?
51
- # super(*args)
52
- # else
53
- # after_request_log.append_to(:log_file, "[debug] #{args[0]}") unless gray_logger.nil?
54
- # proxied_logger.send(:debug, *args)
55
- # end
56
- # end
57
- GELF::Levels.constants.each do |const|
58
- class_eval <<-EOT, __FILE__, __LINE__ + 1
59
- def #{const.downcase}(*args)
60
- if proxied_logger.nil?
61
- gray_logger.send(:#{const.downcase}, *args)
62
- else
63
- gray_logger.after_request_log.append_to(:log_file, "[#{const.downcase}] \#{args[0]}") unless gray_logger.nil?
64
- proxied_logger.send(:#{const.downcase}, *args)
65
- end
66
- end
67
- EOT
68
- end
69
-
70
- private
71
- def method_missing(method_name, *args, &block)
72
- unless gray_logger.nil?
73
- begin
74
- gray_logger.send(method_name, *args, &block)
75
- rescue => e
76
- gray_logger.handle_exception(e)
77
- end
78
- end
79
- unless proxied_logger.nil?
80
- begin
81
- proxied_logger.send(method_name, *args, &block)
82
- rescue => e
83
- proxied_logger.error(e.backtrace.join("\n"))
84
- end
85
- end
86
- end
87
- end
88
-
89
- def self.proxy= proxy
90
- @proxy = proxy
91
- end
92
-
93
- def self.proxy
94
- @proxy ||= ::Rack::GrayLogger::Proxy.new
95
- end
96
-
97
39
  end
98
40
  end
@@ -5,7 +5,8 @@ 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 "ActionDispatch::ShowExceptions", "Rack::GrayLogger::Middleware", :configuration => configuration
8
+ ::GrayLogger.configure(configuration)
9
+ app.middleware.insert_after "ActionDispatch::ShowExceptions", "Rack::GrayLogger::Middleware"
9
10
  end
10
11
  rescue => e
11
12
  $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: 51
4
+ hash: 49
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 11
9
- - 0
10
- version: 0.11.0
9
+ - 1
10
+ version: 0.11.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Benjamin Behr
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-11-16 00:00:00 Z
18
+ date: 2012-11-19 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: gelf
@@ -41,9 +41,11 @@ extra_rdoc_files: []
41
41
 
42
42
  files:
43
43
  - lib/gray_logger/bucket.rb
44
+ - lib/gray_logger/configuration.rb
44
45
  - lib/gray_logger/helper_methods.rb
45
46
  - lib/gray_logger/logger.rb
46
47
  - lib/gray_logger/message.rb
48
+ - lib/gray_logger/proxy.rb
47
49
  - lib/gray_logger/rack.rb
48
50
  - lib/gray_logger/rails_modules.rb
49
51
  - lib/gray_logger/railtie.rb