mongo_request_logger 0.2.2 → 0.2.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c12306c3594f970a2b190211b16758d67113b63
4
- data.tar.gz: f26c586b32fd61bea54749eb3d0827a9839d4376
3
+ metadata.gz: 14cc51ac49b41aff00fa2706ef33b7d6746dc5c4
4
+ data.tar.gz: c31e051b7f43597f14a6801b50bdfac0d588ad4a
5
5
  SHA512:
6
- metadata.gz: 23d76e70a74a44c733f047e48036e00ca9f3b66d9e7d7f9f35d74fbc5f9df14d7de22adefd6ed94d0838bcc87fdbde9acafa0543a41a2ac6d859d8365bfbb52d
7
- data.tar.gz: ab61223b3a505756e35cab7fa53d67f29f48a7c60f70f52e5316fe3b3e9a12fd70ecc233a6554caad86a1108cfa7fe43b68ebf6773ab321d9d467c23c9883add
6
+ metadata.gz: 03fc69114b36bd8655151147e521b7669648ea4ad495398bb97dff12d0d3d1e119fd254775f559745d220c59f489c6e09c1ce354729a46105911fb038bdddd1b
7
+ data.tar.gz: 6f595c406735e69032845e2544eb0bfd0019cd5da6509bec8c20fcaa2553e72bfb66ab354229cd52e5d258bc922a2830ba4c366f89003b032f92aad4da227a52
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.2.3
2
+
3
+ * Simpler configuration for Sinatra apps.
4
+
1
5
  ## 0.2.2
2
6
 
3
7
  * Allow Sinatra 1.4.x to be used.
data/README.md CHANGED
@@ -29,26 +29,38 @@ Routes for log viewer
29
29
  mount MongoRequestLogger::Viewer, :at => "log"
30
30
 
31
31
 
32
+ ## Usage with Sinatra (or other Rack-based apps)
32
33
 
33
- ## Usage with other Rack-based frameworks (Sinatra, etc)
34
+ Config file is the same as with Rails.
34
35
 
35
- In config.ru, or where appropriate:
36
+ In config.ru:
36
37
 
37
- require 'moped'
38
+ require 'mongo_request_logger'
39
+ require './yourapp'
38
40
 
39
- config = {
40
- database: 'my_log_db',
41
- collection: 'log',
42
- capsize: 100, # megabytes
43
- }
44
-
45
- adapter = MongoRequestLogger::Adapters::Moped.new(config)
46
- logger = MongoRequestLogger::Logger.new(adapter, "myapp.log")
47
- MongoRequestLogger::Rack.logger = loggger
41
+ # Configure database details
42
+ MongoRequestLogger.configure(File.join(File.dirname(__FILE__), 'config/logger.yml'))
48
43
 
44
+ # Enable the middleware to log the requests
49
45
  use MongoRequestLogger::Rack
50
46
 
51
- run MyApp
47
+ # Mount the log viewer in /log
48
+ run Rack::URLMap.new("/" => YourApp.new,
49
+ "/log" => MongoRequestLogger::Viewer.new)
50
+
51
+ In a Sinatra app:
52
+
53
+ # Disable the default logger
54
+ set :logging, nil
55
+
56
+ get '/' do
57
+ logger.info "Logging from Sinatra!"
58
+ end
59
+
60
+ In other Rack-based apps:
61
+
62
+ env['rack.logger'].info "Logging from Rack!"
63
+
52
64
 
53
65
  ## Ignoring paths
54
66
 
@@ -57,7 +69,7 @@ to be ignored:
57
69
 
58
70
  MongoRequestLogger::Rack.ignore_prefixes << '/assets/'
59
71
 
60
- ## Usage with resque
72
+ ## Usage with Resque
61
73
 
62
74
  Extend from MongoRequestLogger::LoggedJob, to have each job logged as if it was a request.
63
75
 
@@ -25,6 +25,9 @@ module MongoRequestLogger
25
25
  end
26
26
 
27
27
  def call(env)
28
+ env['rack.logger'] = logger
29
+ env['rack.errors'] = logger
30
+
28
31
  #HACK: Don't log the log viewer itself
29
32
  self.class.ignore_prefixes.each do |prefix|
30
33
  if env["PATH_INFO"].to_s.start_with? prefix
@@ -1,51 +1,29 @@
1
1
  if (defined? Rails) && Rails.version =~ /^3\./
2
2
  require 'mongo_request_logger'
3
- require 'mongo_request_logger/config'
4
- require 'mongo_request_logger/rack'
5
- require 'mongo_request_logger/viewer'
6
3
 
7
4
  require 'rails'
8
5
 
9
- begin
10
- # We prefer moped ...
11
- require 'moped'
12
- rescue LoadError
13
- # ... but fallback to mongo
14
- require 'mongo'
15
- end
16
-
17
6
  module MongoRequestLogger
18
7
  class Railtie < ::Rails::Railtie
19
8
  class << self
20
9
  def setup(app)
10
+ logger = MongoRequestLogger.configure(Rails.root.join('config/logger.yml'), fallback_log: Rails.root.join("log/#{Rails.env}.log"))
11
+
12
+ app.config.logger = logger
21
13
 
22
- global_config = MongoRequestLogger::Config.new
23
- global_config.load_file(File.join(Rails.root, "config/logger.yml"))
24
- log_config = global_config.namespaced(Rails.env)
25
- return unless log_config && log_config['database']
14
+ Rails.logger = logger
26
15
 
27
- if defined? Moped
28
- adapter = MongoRequestLogger::Adapters::Moped.new(log_config)
29
- else
30
- adapter = MongoRequestLogger::Adapters::Mongo.new(log_config)
16
+ if defined? ActiveRecord
17
+ ActiveRecord::Base.logger = logger
31
18
  end
32
- Rails.logger = MongoRequestLogger::Logger.new adapter, Rails.root.join("log/#{Rails.env}.log")
33
19
 
34
- MongoRequestLogger::Rack.logger = Rails.logger
35
- MongoRequestLogger::Rack.ignore_prefixes << '/assets'
20
+ if defined? ActionController
21
+ ActionController::Base.logger = logger
22
+ end
36
23
 
37
- MongoRequestLogger::Viewer.adapter = adapter
38
24
 
39
25
  app.config.middleware.insert_after ActionDispatch::DebugExceptions, MongoRequestLogger::Rack
40
26
 
41
- if defined?(PhusionPassenger)
42
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
43
- if forked
44
- adapter.reconnect
45
- end
46
- end
47
- end
48
-
49
27
  end
50
28
  end
51
29
 
@@ -1,3 +1,3 @@
1
1
  module MongoRequestLogger
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
@@ -2,6 +2,7 @@ require 'mongo_request_logger/ext/buffered_logger'
2
2
  require 'mongo_request_logger/ext/logger'
3
3
  require 'mongo_request_logger/logger'
4
4
  require 'mongo_request_logger/version'
5
+ require 'mongo_request_logger/rack'
5
6
 
6
7
  if defined?(Rails)
7
8
  require 'mongo_request_logger/railtie'
@@ -12,5 +13,52 @@ require 'mongo_request_logger/adapters/mongo'
12
13
 
13
14
 
14
15
  module MongoRequestLogger
16
+ def self.configure(config_path, options={})
17
+ require 'mongo_request_logger/config'
18
+ require 'mongo_request_logger/rack'
19
+ require 'mongo_request_logger/viewer'
15
20
 
21
+ begin
22
+ # We prefer moped ...
23
+ require 'moped'
24
+ rescue LoadError
25
+ # ... but fallback to mongo
26
+ require 'mongo'
27
+ end
28
+
29
+ environment = ENV['RACK_ENV'] || ENV['RAILS_ENV']
30
+
31
+ global_config = MongoRequestLogger::Config.new
32
+ global_config.load_file(config_path)
33
+ log_config = global_config.namespaced(environment)
34
+
35
+ return false unless log_config && log_config['database']
36
+
37
+ if defined? Moped
38
+ adapter = MongoRequestLogger::Adapters::Moped.new(log_config)
39
+ else
40
+ adapter = MongoRequestLogger::Adapters::Mongo.new(log_config)
41
+ end
42
+
43
+ fallback_log = options[:fallback_log] || log_config['fallback_log'] || "log/#{environment}.log"
44
+
45
+ logger = MongoRequestLogger::Logger.new adapter, fallback_log
46
+
47
+ MongoRequestLogger::Rack.logger = logger
48
+ MongoRequestLogger::Rack.ignore_prefixes << '/assets'
49
+ MongoRequestLogger::Rack.ignore_prefixes << '/favicon.ico'
50
+
51
+ MongoRequestLogger::Viewer.adapter = adapter
52
+
53
+ if defined?(PhusionPassenger)
54
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
55
+ if forked
56
+ adapter.reconnect
57
+ end
58
+ end
59
+ end
60
+
61
+ logger
62
+
63
+ end
16
64
  end
@@ -0,0 +1,12 @@
1
+ require 'sinatra/base'
2
+
3
+ class SinatraApp < Sinatra::Base
4
+ # This prevents Sinatra from using the default logger
5
+ set :logging, nil
6
+
7
+ get '/' do
8
+ logger.info 'Logging from Sinatra!'
9
+
10
+ 'Log test'
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ require 'mongo_request_logger'
2
+ require './app'
3
+
4
+ MongoRequestLogger.configure(File.join(File.dirname(__FILE__), 'config/logger.yml'))
5
+
6
+ use MongoRequestLogger::Rack
7
+
8
+ run Rack::URLMap.new("/" => SinatraApp.new,
9
+ "/log" => MongoRequestLogger::Viewer.new)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_request_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Embark Mobile
@@ -396,6 +396,8 @@ files:
396
396
  - spec/railtie_spec.rb
397
397
  - spec/shared_examples.rb
398
398
  - spec/spec_helper.rb
399
+ - spec/testapp/app.rb
400
+ - spec/testapp/config.ru
399
401
  - spec/testapp/config/logger.yml
400
402
  - spec/testapp/log/.gitkeep
401
403
  - views/index.erb
@@ -429,5 +431,7 @@ test_files:
429
431
  - spec/railtie_spec.rb
430
432
  - spec/shared_examples.rb
431
433
  - spec/spec_helper.rb
434
+ - spec/testapp/app.rb
435
+ - spec/testapp/config.ru
432
436
  - spec/testapp/config/logger.yml
433
437
  - spec/testapp/log/.gitkeep