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 +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
|