mongo_request_logger 0.4.0 → 0.5.0
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 +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +6 -3
- data/CHANGELOG.md +7 -1
- data/Gemfile +2 -2
- data/README.md +2 -2
- data/gemfiles/{sinatra1.3.gemfile → rails4.2.gemfile} +4 -3
- data/gemfiles/sinatra1.4.gemfile +2 -2
- data/lib/mongo_request_logger.rb +1 -1
- data/lib/mongo_request_logger/adapters/moped.rb +4 -2
- data/lib/mongo_request_logger/ext/activesupport_logger.rb +4 -0
- data/lib/mongo_request_logger/ext/moped_session.rb +5 -0
- data/lib/mongo_request_logger/logger.rb +16 -4
- data/lib/mongo_request_logger/rack.rb +1 -1
- data/lib/mongo_request_logger/railtie.rb +1 -1
- data/lib/mongo_request_logger/version.rb +1 -1
- data/mongo_request_logger.gemspec +1 -1
- data/spec/dummy/application.rb +9 -1
- data/spec/dummy/config/mongoid.yml +13 -0
- data/spec/rails_spec.rb +4 -4
- data/spec/spec_helper.rb +3 -14
- metadata +21 -19
- data/lib/mongo_request_logger/ext/buffered_logger.rb +0 -6
- data/spec/dummy/config/logger.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1a7c2d660f9091c18bab904f5c7adf9c7481dfd
|
4
|
+
data.tar.gz: 756f66c113e76c516016dc068de35e6c81bf3f0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7248658d11b915dd320dc65104c20b238b4f64f1f496925f9e9ed7abe2aeaba2a2efc504d82380a98289e4d44cd6209ee7b3899730a4526d967167719b7257ee
|
7
|
+
data.tar.gz: a66e533c523a2c78ba07f2faac8442fa7e6e82940f6597d8d56da426fa1b8246148c8cc7ac28a4c95bb7342fc2ea28b399c844004cf57171f8be2cc9ce1eee3e
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.0
|
data/.travis.yml
CHANGED
@@ -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/
|
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@
|
21
|
+
- ralf@journeyapps.com
|
data/CHANGELOG.md
CHANGED
@@ -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
|
37
|
+
* Improved handling of logger when not configured for an environment.
|
32
38
|
|
33
39
|
## 0.2.3
|
34
40
|
|
data/Gemfile
CHANGED
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', '~>
|
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', '~>
|
4
|
-
gem 'mongoid', '~>
|
3
|
+
gem 'moped', '~> 2.0'
|
4
|
+
gem 'mongoid', '~> 4.0'
|
5
5
|
gem 'rspec'
|
6
|
-
gem 'rails', '~>
|
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: '../'
|
data/gemfiles/sinatra1.4.gemfile
CHANGED
data/lib/mongo_request_logger.rb
CHANGED
@@ -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] = ::
|
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" => ::
|
56
|
+
@collection.find("_id" => ::BSON::ObjectId.from_string(id)).first
|
55
57
|
end
|
56
58
|
|
57
59
|
def clear!
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'active_support/
|
2
|
-
require 'mongo_request_logger/ext/
|
1
|
+
require 'active_support/logger'
|
2
|
+
require 'mongo_request_logger/ext/activesupport_logger'
|
3
3
|
|
4
4
|
module MongoRequestLogger
|
5
|
-
class Logger < ActiveSupport::
|
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
|
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
|
-
|
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
|
data/spec/dummy/application.rb
CHANGED
@@ -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)
|
data/spec/rails_spec.rb
CHANGED
@@ -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 ==
|
81
|
+
last_response.status.should == 400
|
82
82
|
|
83
83
|
result = adapter.query({}).first
|
84
84
|
result['path'].should == '/'
|
85
|
-
result['response'].should == 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 ==
|
95
|
+
last_response.status.should == 400
|
96
96
|
|
97
97
|
result = adapter.query({}).first
|
98
98
|
result['path'].should == '/'
|
99
|
-
result['response'].should == 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
|
data/spec/spec_helper.rb
CHANGED
@@ -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
|
+
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:
|
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: '
|
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: '
|
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
|
-
- .
|
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/
|
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/
|
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/
|
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.
|
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/
|
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
|