mongo_request_logger 0.4.0 → 0.5.0

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: 77639396cad58e5a076a1bfb8faf2814140c79a3
4
- data.tar.gz: 04ef4b8af39a09990dd78a6d88648cae5f881902
3
+ metadata.gz: a1a7c2d660f9091c18bab904f5c7adf9c7481dfd
4
+ data.tar.gz: 756f66c113e76c516016dc068de35e6c81bf3f0e
5
5
  SHA512:
6
- metadata.gz: 27db8433c868c7cf729afefb4418ca3dd90905c735e608cff97946c3f23098b7cd5ff158dcd77ce2dfa93a1c9a8d47f7f342d9ac60ec2ebca2a18fbe9ec58805
7
- data.tar.gz: c60ac9125d39a8c98a43974f9ede24093904c90c3ec9a4c049114154d96c2d11ac3d3ced27f10af0f900648b41bb1c92394054196c2b10b6f521d34f8f435658
6
+ metadata.gz: 7248658d11b915dd320dc65104c20b238b4f64f1f496925f9e9ed7abe2aeaba2a2efc504d82380a98289e4d44cd6209ee7b3899730a4526d967167719b7257ee
7
+ data.tar.gz: a66e533c523a2c78ba07f2faac8442fa7e6e82940f6597d8d56da426fa1b8246148c8cc7ac28a4c95bb7342fc2ea28b399c844004cf57171f8be2cc9ce1eee3e
@@ -0,0 +1 @@
1
+ 2.2.0
@@ -1,18 +1,21 @@
1
1
  language: ruby
2
2
  script: "bundle exec rspec"
3
+ branches:
4
+ except:
5
+ - /^v[0-9]/
3
6
  env:
4
7
  - CI=true
5
8
  rvm:
6
- - 1.9.3
7
9
  - 2.0.0
8
10
  - 2.1.1
11
+ - 2.2.0
9
12
 
10
13
  gemfile:
11
- - gemfiles/sinatra1.3.gemfile
14
+ - gemfiles/rails4.2.gemfile
12
15
  - gemfiles/sinatra1.4.gemfile
13
16
 
14
17
  services:
15
18
  - mongodb
16
19
  notifications:
17
20
  recipients:
18
- - ralf@embarkmobile.com
21
+ - ralf@journeyapps.com
@@ -1,3 +1,9 @@
1
+ ## 0.5.0
2
+
3
+ *Backwards incompatible!*
4
+
5
+ * Support Rails 4, Mongoid 4 and Moped 2. Older versions of these, including ActiveSupport, is not supported anymore.
6
+
1
7
  ## 0.4.0
2
8
 
3
9
  *Backwards incompatible!*
@@ -28,7 +34,7 @@
28
34
 
29
35
  ## 0.2.4
30
36
 
31
- * Improved hanlding of logger when not configured for an environment.
37
+ * Improved handling of logger when not configured for an environment.
32
38
 
33
39
  ## 0.2.3
34
40
 
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'moped', '~> 1.5'
4
- gem 'mongoid', '~> 3.0'
3
+ gem 'moped', '~> 2.0'
4
+ gem 'mongoid', '~> 4.0'
5
5
  gem 'rspec'
6
6
  gem 'sinatra', '~> 1.4.0'
7
7
 
data/README.md CHANGED
@@ -6,10 +6,10 @@ Log requests in a structured format to MongoDB.
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- gem 'mongoid', '~> 3.0'
9
+ gem 'mongoid', '~> 4.0'
10
10
  gem 'mongo_request_logger'
11
11
 
12
- ## Usage with Rails
12
+ ## Usage with Rails 4
13
13
 
14
14
  Add a `logger` session to your Mongoid config, `config/mongoid.yml`. An additional option
15
15
  `capsize` must be provided.
@@ -1,10 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'moped', '~> 1.5'
4
- gem 'mongoid', '~> 3.0'
3
+ gem 'moped', '~> 2.0'
4
+ gem 'mongoid', '~> 4.0'
5
5
  gem 'rspec'
6
- gem 'rails', '~> 3.2.10'
6
+ gem 'rails', '~> 4.2'
7
7
  gem 'sinatra', '~> 1.3.2'
8
+ gem 'actionpack-xml_parser'
8
9
 
9
10
  # Specify your gem's dependencies in mongo_request_logger.gemspec
10
11
  gemspec path: '../'
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'moped', '~> 1.5'
4
- gem 'mongoid', '~> 3.0'
3
+ gem 'moped', '~> 2.0'
4
+ gem 'mongoid', '~> 4.0'
5
5
  gem 'rspec'
6
6
  gem 'sinatra', '~> 1.4.0'
7
7
 
@@ -1,4 +1,4 @@
1
- require 'mongo_request_logger/ext/buffered_logger'
1
+ require 'mongo_request_logger/ext/activesupport_logger'
2
2
  require 'mongo_request_logger/ext/logger'
3
3
  require 'mongo_request_logger/logger'
4
4
  require 'mongo_request_logger/version'
@@ -1,6 +1,8 @@
1
1
  # Adapted from https://github.com/le0pard/mongodb_logger/
2
+ require 'moped'
2
3
 
3
4
  require 'mongo_request_logger/adapters/base'
5
+ require 'mongo_request_logger/ext/moped_session'
4
6
 
5
7
  module MongoRequestLogger
6
8
  module Adapters
@@ -34,7 +36,7 @@ module MongoRequestLogger
34
36
  end
35
37
 
36
38
  def insert_log_record(record)
37
- record[:_id] = ::Moped::BSON::ObjectId.new
39
+ record[:_id] = ::BSON::ObjectId.new
38
40
  @connection.with(safe: false)[collection_name].insert(record)
39
41
  end
40
42
 
@@ -51,7 +53,7 @@ module MongoRequestLogger
51
53
  end
52
54
 
53
55
  def find_by_id(id)
54
- @collection.find("_id" => ::Moped::BSON::ObjectId.from_string(id)).first
56
+ @collection.find("_id" => ::BSON::ObjectId.from_string(id)).first
55
57
  end
56
58
 
57
59
  def clear!
@@ -0,0 +1,4 @@
1
+ require 'active_support/logger'
2
+ require 'mongo_request_logger/logger_extensions'
3
+
4
+ ActiveSupport::Logger.send(:include, MongoRequestLogger::LoggerExtensions)
@@ -0,0 +1,5 @@
1
+ require 'moped'
2
+ require 'moped/session'
3
+
4
+ # We use an additional :capsize option in the config.
5
+ Moped::Session.send(:option, :capsize).allow(Optionable.any(Integer))
@@ -1,8 +1,8 @@
1
- require 'active_support/buffered_logger'
2
- require 'mongo_request_logger/ext/buffered_logger'
1
+ require 'active_support/logger'
2
+ require 'mongo_request_logger/ext/activesupport_logger'
3
3
 
4
4
  module MongoRequestLogger
5
- class Logger < ActiveSupport::BufferedLogger
5
+ class Logger < ActiveSupport::Logger
6
6
  attr_reader :adapter
7
7
 
8
8
  def initialize(adapter, file, level=DEBUG)
@@ -89,7 +89,19 @@ module MongoRequestLogger
89
89
  end
90
90
 
91
91
  def add(severity, message = nil, progname = nil, &block)
92
+ severity ||= UNKNOWN
93
+
92
94
  unless level > severity
95
+ if message.nil?
96
+ if block_given?
97
+ message = yield
98
+ else
99
+ message = progname
100
+ end
101
+ end
102
+
103
+ raise "FOO" if message.nil?
104
+
93
105
  time = Time.now.strftime "%H:%M:%S.%L"
94
106
  prefix = "#{time} [#{level_to_s(severity)}] "
95
107
  #if ActiveRecord::Base.colorize_logging
@@ -97,7 +109,7 @@ module MongoRequestLogger
97
109
  # @mongo_record[:messages] << prefix + message.gsub(/(\e(\[([\d;]*[mz]?))?)?/, '').strip rescue nil
98
110
  #else
99
111
  @mongo_record[:messages] ||= []
100
- @mongo_record[:messages] << prefix + message
112
+ @mongo_record[:messages] << "#{prefix}#{message}"
101
113
  #end
102
114
  end
103
115
 
@@ -37,7 +37,7 @@ module MongoRequestLogger
37
37
  return @app.call(env)
38
38
  end
39
39
  end
40
- # TODO: filter parameters
40
+
41
41
  # KLUDGE: this will cause parameter parsing to happen twice: once here, once later on in Rails.
42
42
  # Or maybe it's automatically cached in env?
43
43
  logger.log_request do
@@ -1,4 +1,4 @@
1
- if (defined? Rails) && Rails.version =~ /^3\./
1
+ if defined? Rails
2
2
  require 'mongo_request_logger'
3
3
 
4
4
  require 'rails'
@@ -1,3 +1,3 @@
1
1
  module MongoRequestLogger
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -20,5 +20,5 @@ Gem::Specification.new do |gem|
20
20
 
21
21
  gem.add_dependency 'sinatra', '>= 1.3.2'
22
22
  gem.add_dependency 'sinatra-contrib'
23
- gem.add_dependency 'activesupport', '~> 3.0'
23
+ gem.add_dependency 'activesupport', '~> 4.0'
24
24
  end
@@ -1,6 +1,7 @@
1
1
  require 'rails'
2
2
  require 'action_controller/railtie'
3
-
3
+ require 'action_dispatch/xml_params_parser'
4
+ require 'mongo_request_logger/viewer'
4
5
 
5
6
  class Dummy < Rails::Application
6
7
  config.root = File.dirname(__FILE__)
@@ -8,6 +9,9 @@ class Dummy < Rails::Application
8
9
  # Rails needs these keys, but they don't really have to be secret for our tests
9
10
  config.session_store :cookie_store, key: '****************************************'
10
11
  config.secret_token = '****************************************'
12
+ config.secret_key_base = '****************************************'
13
+
14
+ config.middleware.insert_after ActionDispatch::ParamsParser, ActionDispatch::XmlParamsParser
11
15
 
12
16
  # Our routes
13
17
  routes.draw do
@@ -33,5 +37,9 @@ end
33
37
 
34
38
  # Not sure how to make Rails automatically run the railtie with a dummy app, so we do it manually.
35
39
  # In a proper Rails app we don't need this.
40
+
41
+ config_file = Rails.root.join("config", "mongoid.yml")
42
+ ::Mongoid.load!(config_file)
43
+
36
44
  require 'mongo_request_logger/railtie'
37
45
  MongoRequestLogger::Railtie.setup(Rails.application)
@@ -0,0 +1,13 @@
1
+ test:
2
+ sessions:
3
+ default:
4
+ database: request_logger_test_dummy
5
+ hosts:
6
+ - localhost:27017
7
+ logger:
8
+ database: request_logger_test
9
+ hosts:
10
+ - localhost:27017
11
+ options:
12
+ capsize: 10 # megabytes
13
+
@@ -78,11 +78,11 @@ begin
78
78
  it "should handle broken post JSON content" do
79
79
  data = "This is not JSON"
80
80
  post '/', {}, {input: data, "CONTENT_TYPE" => 'application/json'}
81
- last_response.status.should == 500
81
+ last_response.status.should == 400
82
82
 
83
83
  result = adapter.query({}).first
84
84
  result['path'].should == '/'
85
- result['response'].should == 500 # Why is it 500?
85
+ result['response'].should == 500 # FIXME: We don't detect the response code correctly.
86
86
  result['request_method'].should == 'POST'
87
87
  result['content_type'].should == 'application/json'
88
88
  result['content_length'].should == data.length
@@ -92,11 +92,11 @@ begin
92
92
  it "should handle broken post XML content" do
93
93
  data = "This is not XML"
94
94
  post '/', {}, {input: data, "CONTENT_TYPE" => 'application/xml'}
95
- last_response.status.should == 500
95
+ last_response.status.should == 400
96
96
 
97
97
  result = adapter.query({}).first
98
98
  result['path'].should == '/'
99
- result['response'].should == 500 # Why is it 500?
99
+ result['response'].should == 500 # FIXME: We don't detect the response code correctly.
100
100
  result['request_method'].should == 'POST'
101
101
  result['content_type'].should == 'application/xml'
102
102
  result['content_length'].should == data.length
@@ -1,13 +1,6 @@
1
1
  require 'rspec'
2
2
  require 'rack/test'
3
3
 
4
- if ENV['COVERAGE']
5
- require 'simplecov'
6
- SimpleCov.start do
7
- add_filter '/spec/'
8
- end
9
- end
10
-
11
4
  begin
12
5
  require 'rails'
13
6
  rescue LoadError
@@ -20,13 +13,9 @@ if defined? Rails
20
13
  RAILS_ROOT = File.join(File.dirname(__FILE__), 'spec/dummy')
21
14
  end
22
15
 
23
- # Require all files, so they show up in coverage
24
- Dir['lib/**/*.rb'].each do |file|
25
- path = /lib\/(.*)\.rb/.match(file)[1]
26
- require path
27
- end
28
-
29
-
30
16
  RSpec.configure do |conf|
31
17
  conf.include Rack::Test::Methods
18
+
19
+ # We're still using the old syntax for now
20
+ conf.expect_with(:rspec) { |c| c.syntax = :should }
32
21
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_request_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Embark Mobile
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-18 00:00:00.000000000 Z
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.3.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.3.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra-contrib
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '4.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '4.0'
55
55
  description: Request logger for Rack apps
56
56
  email:
57
57
  - info@embarkmobile.com
@@ -59,8 +59,9 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
63
- - .travis.yml
62
+ - ".gitignore"
63
+ - ".ruby-version"
64
+ - ".travis.yml"
64
65
  - CHANGELOG.md
65
66
  - Gemfile
66
67
  - LICENSE.txt
@@ -371,14 +372,15 @@ files:
371
372
  - angular/test/unit/filtersSpec.js
372
373
  - angular/test/unit/servicesSpec.js
373
374
  - config.ru
374
- - gemfiles/sinatra1.3.gemfile
375
+ - gemfiles/rails4.2.gemfile
375
376
  - gemfiles/sinatra1.4.gemfile
376
377
  - lib/mongo_request_logger.rb
377
378
  - lib/mongo_request_logger/adapters/base.rb
378
379
  - lib/mongo_request_logger/adapters/moped.rb
379
380
  - lib/mongo_request_logger/backtrace_cleaner.rb
380
- - lib/mongo_request_logger/ext/buffered_logger.rb
381
+ - lib/mongo_request_logger/ext/activesupport_logger.rb
381
382
  - lib/mongo_request_logger/ext/logger.rb
383
+ - lib/mongo_request_logger/ext/moped_session.rb
382
384
  - lib/mongo_request_logger/log_message.rb
383
385
  - lib/mongo_request_logger/logged_job.rb
384
386
  - lib/mongo_request_logger/logger.rb
@@ -390,7 +392,7 @@ files:
390
392
  - lib/mongo_request_logger/viewer.rb
391
393
  - mongo_request_logger.gemspec
392
394
  - spec/dummy/application.rb
393
- - spec/dummy/config/logger.yml
395
+ - spec/dummy/config/mongoid.yml
394
396
  - spec/dummy/log/.gitkeep
395
397
  - spec/moped_logger_spec.rb
396
398
  - spec/query_spec.rb
@@ -412,23 +414,23 @@ require_paths:
412
414
  - lib
413
415
  required_ruby_version: !ruby/object:Gem::Requirement
414
416
  requirements:
415
- - - '>='
417
+ - - ">="
416
418
  - !ruby/object:Gem::Version
417
419
  version: '0'
418
420
  required_rubygems_version: !ruby/object:Gem::Requirement
419
421
  requirements:
420
- - - '>='
422
+ - - ">="
421
423
  - !ruby/object:Gem::Version
422
424
  version: '0'
423
425
  requirements: []
424
426
  rubyforge_project:
425
- rubygems_version: 2.0.3
427
+ rubygems_version: 2.4.5
426
428
  signing_key:
427
429
  specification_version: 4
428
430
  summary: Structured logger and log viewer for Rack (including Rails) requests
429
431
  test_files:
430
432
  - spec/dummy/application.rb
431
- - spec/dummy/config/logger.yml
433
+ - spec/dummy/config/mongoid.yml
432
434
  - spec/dummy/log/.gitkeep
433
435
  - spec/moped_logger_spec.rb
434
436
  - spec/query_spec.rb
@@ -1,6 +0,0 @@
1
- require 'active_support/buffered_logger'
2
- require 'mongo_request_logger/logger_extensions'
3
-
4
- class ActiveSupport::BufferedLogger
5
- include MongoRequestLogger::LoggerExtensions
6
- end
@@ -1,5 +0,0 @@
1
- test:
2
- host: localhost
3
- database: request_logger_test
4
- capsize: 10 # megabytes
5
-