mongo_request_logger 0.2.2 → 0.2.3

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