mongodb_logger 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +1 -1
- data/Appraisals +6 -0
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/bin/mongodb_logger_web +1 -1
- data/features/step_definitions/mongodb_logger_web_steps.rb +6 -6
- data/features/step_definitions/rails_application_steps.rb +6 -2
- data/gemfiles/rails40.gemfile +9 -0
- data/lib/mongodb_logger.rb +11 -11
- data/lib/mongodb_logger/adapters/base.rb +10 -10
- data/lib/mongodb_logger/adapters/mongo.rb +24 -24
- data/lib/mongodb_logger/adapters/moped.rb +17 -17
- data/lib/mongodb_logger/capistrano.rb +3 -4
- data/lib/mongodb_logger/initializer_mixin.rb +6 -4
- data/lib/mongodb_logger/logger.rb +28 -24
- data/lib/mongodb_logger/rack_middleware.rb +9 -7
- data/lib/mongodb_logger/rails_logger.rb +7 -0
- data/lib/mongodb_logger/railtie.rb +2 -3
- data/lib/mongodb_logger/server.rb +5 -5
- data/lib/mongodb_logger/server_config.rb +1 -1
- data/lib/mongodb_logger/tagged_logger.rb +15 -4
- data/lib/mongodb_logger/utils/migrate.rb +1 -1
- data/lib/mongodb_logger/version.rb +1 -1
- data/spec/mongodb_logger_spec.rb +10 -1
- data/spec/rails_spec/controllers/tests_controller_spec_rails.rb +5 -5
- data/spec/support/mongodb_logger_helper.rb +4 -2
- metadata +7 -59
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 869d1bd5bc8d527263e521641148dc69847554d6
|
4
|
+
data.tar.gz: 63e6c1baac19db2e51eb55ca34130aad515356b8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7157cd077d0fecf0f876205e24765f6b2782a6a8c037610d0612fb5645fddf2e8df0557415d8c2e5ec10c215e050a1d86aa4c97cac07bc0019ecda7a3ab2d1d2
|
7
|
+
data.tar.gz: d00d4192fadef0a24f053f4f81fa7f8ac6a7d1c28d54d0e6c3f4617095d6db1d796a281e1a7fb5479493be2cf5997044caf62a3a6b453c5d4b8795deb663e975
|
data/.travis.yml
CHANGED
@@ -2,12 +2,12 @@ language: ruby
|
|
2
2
|
before_install:
|
3
3
|
- "export DISPLAY=:99.0"
|
4
4
|
- "sh -e /etc/init.d/xvfb start"
|
5
|
+
- gem install bundler --pre
|
5
6
|
before_script:
|
6
7
|
- bundle exec rake appraisal:install
|
7
8
|
services:
|
8
9
|
- mongodb
|
9
10
|
rvm:
|
10
|
-
- 1.9.2
|
11
11
|
- 1.9.3
|
12
12
|
- 2.0.0
|
13
13
|
- jruby-19mode
|
data/Appraisals
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -144,7 +144,7 @@ Beyond that, if you want to add extra information to the base of the document (l
|
|
144
144
|
you can just call the Rails.logger.add\_metadata method on your logger like so (for example from a before\_filter):
|
145
145
|
|
146
146
|
# make sure we're using the MongodbLogger in this environment
|
147
|
-
Rails.logger.add_metadata(:
|
147
|
+
Rails.logger.add_metadata(user_id: @current_user.id) if Rails.logger.respond_to?(:add_metadata)
|
148
148
|
|
149
149
|
## Callback on exceptions
|
150
150
|
|
data/bin/mongodb_logger_web
CHANGED
@@ -9,7 +9,7 @@ end
|
|
9
9
|
require 'mongodb_logger/server'
|
10
10
|
|
11
11
|
Vegas::Runner.new(MongodbLogger::Server, 'mongodb_logger_web', {
|
12
|
-
:
|
12
|
+
before_run: lambda {|v|
|
13
13
|
config_file = (ENV['MONGODBLOGGERCONFIG'] || v.args.first)
|
14
14
|
if config_file
|
15
15
|
MongodbLogger::ServerConfig.set_config(config_file)
|
@@ -23,12 +23,12 @@ Given /^homepage$/ do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
Then /^I should see text that no logs in system$/ do
|
26
|
-
page.has_selector?('div', :
|
26
|
+
page.has_selector?('div', text: 'No logs found, try to filter out the other parameters', visible: true)
|
27
27
|
end
|
28
28
|
|
29
29
|
Given /^I should see start tail button$/ do
|
30
|
-
page.has_link?('tailLogsLink', :
|
31
|
-
page.has_link?('tailLogsStopLink', :
|
30
|
+
page.has_link?('tailLogsLink', visible: true)
|
31
|
+
page.has_link?('tailLogsStopLink', visible: false)
|
32
32
|
end
|
33
33
|
|
34
34
|
When /^I click on start tail button$/ do
|
@@ -36,12 +36,12 @@ When /^I click on start tail button$/ do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
Then /^I should see stop tails button$/ do
|
39
|
-
page.has_link?('tailLogsLink', :
|
40
|
-
page.has_link?('tailLogsStopLink', :
|
39
|
+
page.has_link?('tailLogsLink', visible: false)
|
40
|
+
page.has_link?('tailLogsStopLink', visible: true)
|
41
41
|
end
|
42
42
|
|
43
43
|
Then /^box with time of last log tail$/ do
|
44
|
-
page.has_selector?('span#tailLogsTime', :
|
44
|
+
page.has_selector?('span#tailLogsTime', visible: true)
|
45
45
|
end
|
46
46
|
|
47
47
|
When /^I click on stop tail button$/ do
|
@@ -53,6 +53,10 @@ When /^I have copy tests_controller_spec$/ do
|
|
53
53
|
test_file = File.join(PROJECT_ROOT, 'spec', 'rails_spec', 'controllers', 'tests_controller_spec_rails.rb')
|
54
54
|
target = File.join(rails_root, 'spec', 'controllers', 'tests_controller_spec.rb')
|
55
55
|
FileUtils.cp(test_file, target)
|
56
|
+
# init log file
|
57
|
+
logfile = File.join(rails_root, 'log', 'test.log')
|
58
|
+
FileUtils.touch(logfile)
|
59
|
+
FileUtils.chmod(0666, logfile)
|
56
60
|
end
|
57
61
|
|
58
62
|
When /^I have set up tests controllers$/ do
|
@@ -71,8 +75,8 @@ class TestsController < ApplicationController
|
|
71
75
|
LOG_USER_ID = 12345
|
72
76
|
|
73
77
|
def index
|
74
|
-
logger.
|
75
|
-
logger.add_metadata(:
|
78
|
+
logger.info LOG_MESSAGE
|
79
|
+
logger.add_metadata(application_name_again: Rails.root.basename.to_s, user_id: LOG_USER_ID)
|
76
80
|
render text: "index"
|
77
81
|
end
|
78
82
|
|
data/lib/mongodb_logger.rb
CHANGED
@@ -14,9 +14,9 @@ module MongodbLogger
|
|
14
14
|
|
15
15
|
def self.included(base)
|
16
16
|
base.class_eval do
|
17
|
-
|
17
|
+
if defined?(around_action)
|
18
18
|
around_action :enable_mongodb_logger
|
19
|
-
|
19
|
+
else
|
20
20
|
around_filter :enable_mongodb_logger
|
21
21
|
end
|
22
22
|
end
|
@@ -26,19 +26,19 @@ module MongodbLogger
|
|
26
26
|
return yield unless Rails.logger.respond_to?(:mongoize)
|
27
27
|
f_session = (request.respond_to?(:session) ? request.session : session)
|
28
28
|
Rails.logger.mongoize({
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
29
|
+
method: request.method,
|
30
|
+
action: action_name,
|
31
|
+
controller: controller_name,
|
32
|
+
path: request.path,
|
33
|
+
url: request.url,
|
34
|
+
params: (request.respond_to?(:filtered_parameters) ? request.filtered_parameters : params),
|
35
|
+
session: mongo_fix_session_keys(f_session),
|
36
|
+
ip: request.remote_ip
|
37
37
|
}) { yield }
|
38
38
|
end
|
39
39
|
# session keys can be with dots. It is invalid keys for BSON
|
40
40
|
def mongo_fix_session_keys(session = {})
|
41
|
-
new_session =
|
41
|
+
new_session = Hash.new
|
42
42
|
session.each do |i, j|
|
43
43
|
new_session[i.gsub(/\./i, "|")] = j.inspect
|
44
44
|
end if session
|
@@ -5,7 +5,7 @@ module MongodbLogger
|
|
5
5
|
attr_reader :configuration, :connection, :connection_type, :collection, :authenticated
|
6
6
|
|
7
7
|
def collection_name
|
8
|
-
@configuration[
|
8
|
+
@configuration[:collection]
|
9
9
|
end
|
10
10
|
|
11
11
|
def authenticated?
|
@@ -14,12 +14,12 @@ module MongodbLogger
|
|
14
14
|
|
15
15
|
def check_for_collection
|
16
16
|
# setup the capped collection if it doesn't already exist
|
17
|
-
create_collection unless @connection.collection_names.include?(@configuration[
|
18
|
-
@collection = @connection[@configuration[
|
17
|
+
create_collection unless @connection.collection_names.include?(@configuration[:collection])
|
18
|
+
@collection = @connection[@configuration[:collection]]
|
19
19
|
end
|
20
20
|
|
21
21
|
def rename_collection_command(admin_session, to, drop_target = false)
|
22
|
-
admin_session.command({ renameCollection: "#{@configuration[
|
22
|
+
admin_session.command({ renameCollection: "#{@configuration[:database]}.#{collection_name}", to: "#{@configuration[:database]}.#{to}", dropTarget: drop_target })
|
23
23
|
end
|
24
24
|
|
25
25
|
def reset_collection
|
@@ -31,12 +31,12 @@ module MongodbLogger
|
|
31
31
|
|
32
32
|
def collection_stats_hash(stats)
|
33
33
|
{
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
:
|
34
|
+
is_capped: (stats["capped"] && ([1, true].include?(stats["capped"]))),
|
35
|
+
count: stats["count"].to_i,
|
36
|
+
size: stats["size"].to_f,
|
37
|
+
storageSize: stats["storageSize"].to_f,
|
38
|
+
db_name: @configuration["database"],
|
39
|
+
collection: collection_name
|
40
40
|
}
|
41
41
|
end
|
42
42
|
|
@@ -5,24 +5,24 @@ module MongodbLogger
|
|
5
5
|
def initialize(options = {})
|
6
6
|
@authenticated = false
|
7
7
|
@configuration = options
|
8
|
-
if @configuration[
|
9
|
-
uri = URI.parse(@configuration[
|
10
|
-
@configuration[
|
11
|
-
@connection ||= mongo_connection_object.db(@configuration[
|
8
|
+
if @configuration[:url]
|
9
|
+
uri = URI.parse(@configuration[:url])
|
10
|
+
@configuration[:database] = uri.path.gsub(/^\//, '')
|
11
|
+
@connection ||= mongo_connection_object.db(@configuration[:database])
|
12
12
|
@authenticated = true
|
13
13
|
else
|
14
|
-
@connection ||= mongo_connection_object.db(@configuration[
|
15
|
-
if @configuration[
|
14
|
+
@connection ||= mongo_connection_object.db(@configuration[:database])
|
15
|
+
if @configuration[:username] && @configuration[:password]
|
16
16
|
# the driver stores credentials in case reconnection is required
|
17
|
-
@authenticated = @connection.authenticate(@configuration[
|
18
|
-
@configuration[
|
17
|
+
@authenticated = @connection.authenticate(@configuration[:username],
|
18
|
+
@configuration[:password])
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
def create_collection
|
24
24
|
@connection.create_collection(collection_name,
|
25
|
-
{:
|
25
|
+
{ capped: true, size: @configuration[:capsize].to_i })
|
26
26
|
end
|
27
27
|
|
28
28
|
def insert_log_record(record, options = {})
|
@@ -57,34 +57,34 @@ module MongodbLogger
|
|
57
57
|
end
|
58
58
|
logs.reverse!
|
59
59
|
else
|
60
|
-
log = @collection.find_one({}, {:
|
60
|
+
log = @collection.find_one({}, { sort: ['$natural', -1] })
|
61
61
|
log_last_id = log["_id"].to_s unless log.blank?
|
62
62
|
end
|
63
63
|
{
|
64
|
-
:
|
65
|
-
:
|
66
|
-
:
|
64
|
+
log_last_id: log_last_id,
|
65
|
+
time: Time.now.strftime("%F %T"),
|
66
|
+
logs: logs
|
67
67
|
}
|
68
68
|
end
|
69
69
|
|
70
70
|
def calculate_mapreduce(map, reduce, params = {})
|
71
|
-
@collection.map_reduce(map, reduce, {:
|
71
|
+
@collection.map_reduce(map, reduce, { query: params[:conditions], sort: ['$natural', -1], out: { inline: true }, raw: true }).find()
|
72
72
|
end
|
73
73
|
|
74
74
|
private
|
75
75
|
|
76
76
|
def mongo_connection_object
|
77
|
-
if @configuration[
|
78
|
-
conn = ::Mongo::MongoReplicaSetClient.new(@configuration[
|
79
|
-
:
|
80
|
-
@configuration[
|
81
|
-
elsif @configuration[
|
82
|
-
conn = ::Mongo::MongoClient.from_uri(@configuration[
|
77
|
+
if @configuration[:hosts]
|
78
|
+
conn = ::Mongo::MongoReplicaSetClient.new(@configuration[:hosts],
|
79
|
+
pool_timeout: 6, ssl: @configuration[:ssl])
|
80
|
+
@configuration[:replica_set] = true
|
81
|
+
elsif @configuration[:url]
|
82
|
+
conn = ::Mongo::MongoClient.from_uri(@configuration[:url])
|
83
83
|
else
|
84
|
-
conn = ::Mongo::MongoClient.new(@configuration[
|
85
|
-
@configuration[
|
86
|
-
:
|
87
|
-
:
|
84
|
+
conn = ::Mongo::MongoClient.new(@configuration[:host],
|
85
|
+
@configuration[:port],
|
86
|
+
pool_timeout: 6,
|
87
|
+
ssl: @configuration[:ssl])
|
88
88
|
end
|
89
89
|
@connection_type = conn.class
|
90
90
|
conn
|
@@ -4,25 +4,25 @@ module MongodbLogger
|
|
4
4
|
|
5
5
|
def initialize(options = {})
|
6
6
|
@configuration = options
|
7
|
-
if @configuration[
|
8
|
-
uri = URI.parse(@configuration[
|
9
|
-
@configuration[
|
7
|
+
if @configuration[:url]
|
8
|
+
uri = URI.parse(@configuration[:url])
|
9
|
+
@configuration[:database] = uri.path.gsub(/^\//, '')
|
10
10
|
@connection ||= mongo_connection_object
|
11
|
-
@connection.use @configuration[
|
11
|
+
@connection.use @configuration[:database]
|
12
12
|
@authenticated = true
|
13
13
|
else
|
14
14
|
@connection ||= mongo_connection_object
|
15
|
-
@connection.use @configuration[
|
16
|
-
if @configuration[
|
15
|
+
@connection.use @configuration[:database]
|
16
|
+
if @configuration[:username] && @configuration[:password]
|
17
17
|
# the driver stores credentials in case reconnection is required
|
18
|
-
@authenticated = @connection.login(@configuration[
|
19
|
-
@configuration[
|
18
|
+
@authenticated = @connection.login(@configuration[:username],
|
19
|
+
@configuration[:password])
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def create_collection
|
25
|
-
@connection.command(create: collection_name, capped: true, size: @configuration[
|
25
|
+
@connection.command(create: collection_name, capped: true, size: @configuration[:capsize].to_i)
|
26
26
|
end
|
27
27
|
|
28
28
|
def insert_log_record(record, options = {})
|
@@ -64,9 +64,9 @@ module MongodbLogger
|
|
64
64
|
log_last_id = log["_id"].to_s unless log.blank?
|
65
65
|
end
|
66
66
|
{
|
67
|
-
:
|
68
|
-
:
|
69
|
-
:
|
67
|
+
log_last_id: log_last_id,
|
68
|
+
time: Time.now.strftime("%F %T"),
|
69
|
+
logs: logs
|
70
70
|
}
|
71
71
|
end
|
72
72
|
|
@@ -84,13 +84,13 @@ module MongodbLogger
|
|
84
84
|
private
|
85
85
|
|
86
86
|
def mongo_connection_object
|
87
|
-
if @configuration[
|
88
|
-
conn = ::Moped::Session.new(@configuration[
|
87
|
+
if @configuration[:hosts]
|
88
|
+
conn = ::Moped::Session.new(@configuration[:hosts].map{|(host,port)| "#{host}:#{port}"}, timeout: 6, ssl: @configuration[:ssl])
|
89
89
|
@configuration['replica_set'] = true
|
90
|
-
elsif @configuration[
|
91
|
-
conn = ::Moped::Session.connect(@configuration[
|
90
|
+
elsif @configuration[:url]
|
91
|
+
conn = ::Moped::Session.connect(@configuration[:url])
|
92
92
|
else
|
93
|
-
conn = ::Moped::Session.new(["#{@configuration[
|
93
|
+
conn = ::Moped::Session.new(["#{@configuration[:host]}:#{@configuration[:port]}"], timeout: 6, ssl: @configuration[:ssl])
|
94
94
|
end
|
95
95
|
@connection_type = conn.class
|
96
96
|
conn
|
@@ -1,8 +1,7 @@
|
|
1
1
|
Capistrano::Configuration.instance.load do
|
2
2
|
_cset :mongodb_logger_asset_env, "RAILS_GROUPS=assets"
|
3
|
-
_cset :mongodb_logger_assets_role, [:app]
|
4
3
|
_cset :mongodb_logger_assets_dir, "public/assets"
|
5
|
-
|
4
|
+
_cset :mongodb_logger_assets_role, [:app]
|
6
5
|
_cset :mongodb_logger_db_role, [:app]
|
7
6
|
|
8
7
|
namespace :mongodb_logger do
|
@@ -10,14 +9,14 @@ Capistrano::Configuration.instance.load do
|
|
10
9
|
desc <<-DESC
|
11
10
|
Run the asset precompilation rake task.
|
12
11
|
DESC
|
13
|
-
task :precompile, :
|
12
|
+
task :precompile, roles: mongodb_logger_assets_role, except: { no_release: true } do
|
14
13
|
run "cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{mongodb_logger_asset_env} mongodb_logger:assets:compile[#{mongodb_logger_assets_dir}]"
|
15
14
|
end
|
16
15
|
|
17
16
|
desc <<-DESC
|
18
17
|
Run collection migrate rake task.
|
19
18
|
DESC
|
20
|
-
task :migrate, :
|
19
|
+
task :migrate, roles: mongodb_logger_db_role, except: { no_release: true } do
|
21
20
|
run "cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} mongodb_logger:migrate"
|
22
21
|
end
|
23
22
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'mongodb_logger/rails_logger'
|
2
|
+
|
1
3
|
module MongodbLogger
|
2
4
|
module InitializerMixin
|
3
5
|
|
@@ -7,16 +9,16 @@ module MongodbLogger
|
|
7
9
|
|
8
10
|
def create_logger(config)
|
9
11
|
path = config.paths['log'].first
|
10
|
-
level =
|
11
|
-
logger = MongodbLogger::Logger.new(
|
12
|
+
level = RailsLogger.const_get(config.log_level.to_s.upcase)
|
13
|
+
logger = MongodbLogger::Logger.new(path, level)
|
12
14
|
# decorating with TaggedLogging
|
13
15
|
logger = MongodbLogger::TaggedLogger.new(logger) if defined?(ActiveSupport::TaggedLogging)
|
14
16
|
logger.level = level
|
15
17
|
logger.auto_flushing = false if Rails.env.production? && rails3(1)
|
16
18
|
logger
|
17
19
|
rescue StandardError => e
|
18
|
-
logger =
|
19
|
-
logger.level =
|
20
|
+
logger = RailsLogger.new(STDERR)
|
21
|
+
logger.level = RailsLogger::WARN
|
20
22
|
logger.warn(
|
21
23
|
"MongodbLogger Initializer Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " +
|
22
24
|
"The log level has been raised to WARN and the output directed to STDERR until the problem is fixed." + "\n" +
|
@@ -2,13 +2,13 @@ require 'erb'
|
|
2
2
|
require 'uri'
|
3
3
|
require 'active_support'
|
4
4
|
require 'active_support/core_ext'
|
5
|
-
require 'active_support/core_ext/logger'
|
6
5
|
require 'action_dispatch/http/upload'
|
6
|
+
require 'mongodb_logger/rails_logger'
|
7
7
|
require 'mongodb_logger/adapters'
|
8
8
|
require 'mongodb_logger/replica_set_helper'
|
9
9
|
|
10
10
|
module MongodbLogger
|
11
|
-
class Logger <
|
11
|
+
class Logger < RailsLogger
|
12
12
|
include ReplicaSetHelper
|
13
13
|
|
14
14
|
DEFAULT_COLLECTION_SIZE = 250.megabytes
|
@@ -23,9 +23,9 @@ module MongodbLogger
|
|
23
23
|
|
24
24
|
attr_reader :db_configuration, :mongo_adapter
|
25
25
|
|
26
|
-
def initialize(
|
27
|
-
path
|
28
|
-
@level =
|
26
|
+
def initialize(path = nil, level = DEBUG)
|
27
|
+
path ||= File.join(Rails.root, "log/#{Rails.env}.log")
|
28
|
+
@level = level
|
29
29
|
internal_initialize
|
30
30
|
rescue => e
|
31
31
|
# should use a config block for this
|
@@ -51,9 +51,10 @@ module MongodbLogger
|
|
51
51
|
|
52
52
|
def add(severity, message = nil, progname = nil, &block)
|
53
53
|
$stdout.puts(message) if ENV['HEROKU_RACK'] # log in stdout on Heroku
|
54
|
-
if @level && @level <= severity && message.present? && @mongo_record.present?
|
54
|
+
if @level && @level <= severity && (message.present? || progname.present?) && @mongo_record.present?
|
55
55
|
# do not modify the original message used by the buffered logger
|
56
|
-
msg =
|
56
|
+
msg = (message ? message : progname)
|
57
|
+
msg = logging_colorized? ? msg.to_s.gsub(/(\e(\[([\d;]*[mz]?))?)?/, '').strip : msg
|
57
58
|
@mongo_record[:messages][LOG_LEVEL_SYM[severity]] << msg
|
58
59
|
end
|
59
60
|
# may modify the original message
|
@@ -62,14 +63,14 @@ module MongodbLogger
|
|
62
63
|
|
63
64
|
def mongoize(options = {})
|
64
65
|
@mongo_record = options.merge({
|
65
|
-
:
|
66
|
-
:
|
67
|
-
:
|
66
|
+
messages: Hash.new { |hash, key| hash[key] = Array.new },
|
67
|
+
request_time: Time.now.getutc,
|
68
|
+
application_name: @db_configuration['application_name']
|
68
69
|
})
|
69
70
|
|
70
71
|
runtime = Benchmark.measure{ yield }.real if block_given?
|
71
72
|
rescue Exception => e
|
72
|
-
add(3, e.message
|
73
|
+
add(3, "#{e.message}\n#{e.backtrace.join("\n")}")
|
73
74
|
# log exceptions
|
74
75
|
@mongo_record[:is_exception] = true
|
75
76
|
# Reraise the exception for anyone else who cares
|
@@ -103,23 +104,23 @@ module MongodbLogger
|
|
103
104
|
end
|
104
105
|
|
105
106
|
def disable_file_logging?
|
106
|
-
@db_configuration.fetch(
|
107
|
+
@db_configuration.fetch(:disable_file_logging, false)
|
107
108
|
end
|
108
109
|
|
109
110
|
def configure
|
110
111
|
default_capsize = DEFAULT_COLLECTION_SIZE
|
111
112
|
@db_configuration = {
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
@db_configuration[
|
117
|
-
@db_configuration[
|
118
|
-
@db_configuration[
|
119
|
-
|
120
|
-
@insert_block = @db_configuration.has_key?(
|
121
|
-
lambda { rescue_connection_failure{ insert_log_record(@db_configuration[
|
122
|
-
lambda { insert_log_record(@db_configuration[
|
113
|
+
host: 'localhost',
|
114
|
+
port: 27017,
|
115
|
+
capsize: default_capsize,
|
116
|
+
ssl: false}.merge(resolve_config).with_indifferent_access
|
117
|
+
@db_configuration[:collection] ||= defined?(Rails) ? "#{Rails.env}_log" : "production_log"
|
118
|
+
@db_configuration[:application_name] ||= resolve_application_name
|
119
|
+
@db_configuration[:write_options] ||= { w: 0, wtimeout: 200 }
|
120
|
+
|
121
|
+
@insert_block = @db_configuration.has_key?(:replica_set) && @db_configuration[:replica_set] ?
|
122
|
+
lambda { rescue_connection_failure{ insert_log_record(@db_configuration[:write_options]) } } :
|
123
|
+
lambda { insert_log_record(@db_configuration[:write_options]) }
|
123
124
|
end
|
124
125
|
|
125
126
|
def resolve_application_name
|
@@ -140,6 +141,9 @@ module MongodbLogger
|
|
140
141
|
end
|
141
142
|
|
142
143
|
def find_adapter
|
144
|
+
return Adapers::Mongo if defined?(::Mongo)
|
145
|
+
return Adapers::Moped if defined?(::Moped)
|
146
|
+
|
143
147
|
ADAPTERS.each do |(library, adapter)|
|
144
148
|
begin
|
145
149
|
require library
|
@@ -193,7 +197,7 @@ module MongodbLogger
|
|
193
197
|
when Array
|
194
198
|
data.map{ |v| nice_serialize_object(v) }
|
195
199
|
when ActionDispatch::Http::UploadedFile, Rack::Test::UploadedFile # uploaded files
|
196
|
-
|
200
|
+
{
|
197
201
|
original_filename: data.original_filename,
|
198
202
|
content_type: data.content_type
|
199
203
|
}
|
@@ -8,13 +8,15 @@ module MongodbLogger
|
|
8
8
|
def call(env)
|
9
9
|
request = ::Rack::Request.new env
|
10
10
|
path = request.path.split('/')
|
11
|
-
log_attrs = {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
log_attrs = {
|
12
|
+
method: request.request_method,
|
13
|
+
action: path[2..-1].join('/'),
|
14
|
+
controller: path[1],
|
15
|
+
path: request.path,
|
16
|
+
url: request.url,
|
17
|
+
params: request.params,
|
18
|
+
ip: env['REMOTE_ADDR']
|
19
|
+
}
|
18
20
|
|
19
21
|
Rails.logger.mongoize(log_attrs) do
|
20
22
|
return @app.call(env)
|
@@ -3,9 +3,8 @@ module MongodbLogger
|
|
3
3
|
class Railtie < Rails::Railtie
|
4
4
|
include MongodbLogger::InitializerMixin
|
5
5
|
|
6
|
-
initializer :initialize_mongodb_logger, :
|
7
|
-
|
8
|
-
Rails.logger = config.logger = create_logger(app_config)
|
6
|
+
initializer :initialize_mongodb_logger, before: :initialize_logger do
|
7
|
+
Rails.logger = config.logger = create_logger(Rails.application.config)
|
9
8
|
end
|
10
9
|
|
11
10
|
rake_tasks do
|
@@ -43,18 +43,18 @@ module MongodbLogger
|
|
43
43
|
@mongo_adapter = (ServerConfig.mongo_adapter ? ServerConfig.mongo_adapter : Rails.logger.mongo_adapter)
|
44
44
|
@collection_stats = @mongo_adapter.collection_stats
|
45
45
|
rescue => e
|
46
|
-
erb :error, {:
|
46
|
+
erb :error, { layout: false }, error: "Can't connect to MongoDB!"
|
47
47
|
return false
|
48
48
|
end
|
49
49
|
|
50
|
-
cache_control :private, :must_revalidate, :
|
50
|
+
cache_control :private, :must_revalidate, max_age: 0
|
51
51
|
end
|
52
52
|
|
53
53
|
def show(page, layout = true)
|
54
54
|
begin
|
55
|
-
erb page.to_sym, {:layout
|
55
|
+
erb page.to_sym, { layout: layout }
|
56
56
|
rescue => e
|
57
|
-
erb :error, { :
|
57
|
+
erb :error, { layout: false }, error: "Error in view. Debug: #{e.inspect}"
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -63,7 +63,7 @@ module MongodbLogger
|
|
63
63
|
end
|
64
64
|
|
65
65
|
error do
|
66
|
-
erb :error, { :
|
66
|
+
erb :error, { layout: false }, error: 'Sorry there was a nasty error. Maybe no connection to MongoDB. Debug: ' + env['sinatra.error'].inspect + '<br />' + env.inspect
|
67
67
|
end
|
68
68
|
|
69
69
|
end
|
@@ -1,9 +1,20 @@
|
|
1
1
|
module MongodbLogger
|
2
|
-
|
3
|
-
|
2
|
+
# rails 3
|
3
|
+
if ActiveSupport::TaggedLogging.instance_of?(::Class)
|
4
|
+
class TaggedLogger < ActiveSupport::TaggedLogging
|
5
|
+
delegate :mongoize, :add_metadata, to: :mongo_logger
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
+
def mongo_logger
|
8
|
+
@logger
|
9
|
+
end
|
10
|
+
end
|
11
|
+
# rails 4
|
12
|
+
else
|
13
|
+
# module TaggedLogger
|
14
|
+
module TaggedLogger
|
15
|
+
def self.new(logger)
|
16
|
+
ActiveSupport::TaggedLogging.new(logger)
|
17
|
+
end
|
7
18
|
end
|
8
19
|
end
|
9
20
|
end
|
data/spec/mongodb_logger_spec.rb
CHANGED
@@ -43,6 +43,7 @@ describe MongodbLogger::Logger do
|
|
43
43
|
@mongodb_logger.send(:connect)
|
44
44
|
@mongodb_logger.mongo_adapter.authenticated?.should be_true
|
45
45
|
@mongodb_logger.db_configuration['database'].should == "system_log"
|
46
|
+
@mongodb_logger.db_configuration[:database].should == "system_log"
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
@@ -78,6 +79,13 @@ describe MongodbLogger::Logger do
|
|
78
79
|
@mongo_adapter.configuration['ssl'].should == false
|
79
80
|
end
|
80
81
|
|
82
|
+
it "set the default host, port, ssl and capsize if not configured in sym keys" do
|
83
|
+
@mongo_adapter.configuration[:host].should == 'localhost'
|
84
|
+
@mongo_adapter.configuration[:port].should == 27017
|
85
|
+
@mongo_adapter.configuration[:capsize].should == MongodbLogger::Logger::DEFAULT_COLLECTION_SIZE
|
86
|
+
@mongo_adapter.configuration[:ssl].should == false
|
87
|
+
end
|
88
|
+
|
81
89
|
it "set the mongo collection name depending on the Rails environment" do
|
82
90
|
@mongo_adapter.collection_name.should == "#{Rails.env}_log"
|
83
91
|
end
|
@@ -117,6 +125,7 @@ describe MongodbLogger::Logger do
|
|
117
125
|
|
118
126
|
it "be true" do
|
119
127
|
@mongodb_logger.db_configuration['ssl'].should == true
|
128
|
+
@mongodb_logger.db_configuration[:ssl].should == true
|
120
129
|
end
|
121
130
|
end
|
122
131
|
|
@@ -243,7 +252,7 @@ describe MongodbLogger::Logger do
|
|
243
252
|
context "after instantiation" do
|
244
253
|
context "upon insertion of a log record" do
|
245
254
|
before do
|
246
|
-
@mongodb_logger = MongodbLogger::Logger.new(
|
255
|
+
@mongodb_logger = MongodbLogger::Logger.new(@log_file)
|
247
256
|
log_to_mongo("Test")
|
248
257
|
end
|
249
258
|
|
@@ -17,7 +17,7 @@ describe TestsController do
|
|
17
17
|
|
18
18
|
it "renders the index text" do
|
19
19
|
get :index
|
20
|
-
response.should
|
20
|
+
response.body.should == "index"
|
21
21
|
end
|
22
22
|
|
23
23
|
it "log a single record" do
|
@@ -31,10 +31,10 @@ describe TestsController do
|
|
31
31
|
get :index
|
32
32
|
record = @collection.find.first
|
33
33
|
record.should_not be_nil
|
34
|
-
record["messages"]["
|
35
|
-
record["messages"]["
|
36
|
-
record["messages"]["
|
37
|
-
record["messages"]["
|
34
|
+
record["messages"]["info"].should_not be_nil
|
35
|
+
record["messages"]["info"].should be_a(Array)
|
36
|
+
record["messages"]["info"].size.should == 1
|
37
|
+
record["messages"]["info"].first.should == described_class::LOG_MESSAGE
|
38
38
|
end
|
39
39
|
|
40
40
|
it "write request method" do
|
@@ -49,7 +49,9 @@ module MongodbLogger::SpecHelper
|
|
49
49
|
|
50
50
|
def common_mongodb_logger_setup(options = {}, config = DEFAULT_CONFIG)
|
51
51
|
cp_config(config, DEFAULT_CONFIG)
|
52
|
-
|
52
|
+
level = (options[:level] || MongodbLogger::Logger::DEBUG)
|
53
|
+
@mongodb_logger = MongodbLogger::Logger.new(nil, level)
|
54
|
+
@mongodb_logger.level = level
|
53
55
|
@mongo_adapter = @mongodb_logger.mongo_adapter
|
54
56
|
@mongo_adapter.reset_collection
|
55
57
|
end
|
@@ -68,7 +70,7 @@ module MongodbLogger::SpecHelper
|
|
68
70
|
end
|
69
71
|
|
70
72
|
def log_params_to_mongo(msg)
|
71
|
-
@mongodb_logger.mongoize({:
|
73
|
+
@mongodb_logger.mongoize({params: msg})
|
72
74
|
end
|
73
75
|
|
74
76
|
def log_exception_to_mongo(msg)
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongodb_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Alexey Vasiliev
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec-rails
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: shoulda
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: mocha
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: cucumber
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: cucumber-rails
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: capybara
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - '='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - '='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: coffee-script
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: uglifier
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: jasmine
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: appraisal
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - '>='
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - '>='
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: aruba
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,7 +181,6 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: mongo
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - '>='
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - '>='
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -222,7 +195,6 @@ dependencies:
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: moped
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - '>='
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,7 +202,6 @@ dependencies:
|
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - '>='
|
236
207
|
- !ruby/object:Gem::Version
|
@@ -238,7 +209,6 @@ dependencies:
|
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: rake
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
213
|
- - '>='
|
244
214
|
- !ruby/object:Gem::Version
|
@@ -246,7 +216,6 @@ dependencies:
|
|
246
216
|
type: :runtime
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
220
|
- - '>='
|
252
221
|
- !ruby/object:Gem::Version
|
@@ -254,7 +223,6 @@ dependencies:
|
|
254
223
|
- !ruby/object:Gem::Dependency
|
255
224
|
name: multi_json
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
226
|
requirements:
|
259
227
|
- - '>='
|
260
228
|
- !ruby/object:Gem::Version
|
@@ -262,7 +230,6 @@ dependencies:
|
|
262
230
|
type: :runtime
|
263
231
|
prerelease: false
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
233
|
requirements:
|
267
234
|
- - '>='
|
268
235
|
- !ruby/object:Gem::Version
|
@@ -270,7 +237,6 @@ dependencies:
|
|
270
237
|
- !ruby/object:Gem::Dependency
|
271
238
|
name: activesupport
|
272
239
|
requirement: !ruby/object:Gem::Requirement
|
273
|
-
none: false
|
274
240
|
requirements:
|
275
241
|
- - '>='
|
276
242
|
- !ruby/object:Gem::Version
|
@@ -278,7 +244,6 @@ dependencies:
|
|
278
244
|
type: :runtime
|
279
245
|
prerelease: false
|
280
246
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
none: false
|
282
247
|
requirements:
|
283
248
|
- - '>='
|
284
249
|
- !ruby/object:Gem::Version
|
@@ -286,7 +251,6 @@ dependencies:
|
|
286
251
|
- !ruby/object:Gem::Dependency
|
287
252
|
name: actionpack
|
288
253
|
requirement: !ruby/object:Gem::Requirement
|
289
|
-
none: false
|
290
254
|
requirements:
|
291
255
|
- - '>='
|
292
256
|
- !ruby/object:Gem::Version
|
@@ -294,7 +258,6 @@ dependencies:
|
|
294
258
|
type: :runtime
|
295
259
|
prerelease: false
|
296
260
|
version_requirements: !ruby/object:Gem::Requirement
|
297
|
-
none: false
|
298
261
|
requirements:
|
299
262
|
- - '>='
|
300
263
|
- !ruby/object:Gem::Version
|
@@ -302,7 +265,6 @@ dependencies:
|
|
302
265
|
- !ruby/object:Gem::Dependency
|
303
266
|
name: sprockets
|
304
267
|
requirement: !ruby/object:Gem::Requirement
|
305
|
-
none: false
|
306
268
|
requirements:
|
307
269
|
- - '>='
|
308
270
|
- !ruby/object:Gem::Version
|
@@ -310,7 +272,6 @@ dependencies:
|
|
310
272
|
type: :runtime
|
311
273
|
prerelease: false
|
312
274
|
version_requirements: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
275
|
requirements:
|
315
276
|
- - '>='
|
316
277
|
- !ruby/object:Gem::Version
|
@@ -318,7 +279,6 @@ dependencies:
|
|
318
279
|
- !ruby/object:Gem::Dependency
|
319
280
|
name: sinatra
|
320
281
|
requirement: !ruby/object:Gem::Requirement
|
321
|
-
none: false
|
322
282
|
requirements:
|
323
283
|
- - '>='
|
324
284
|
- !ruby/object:Gem::Version
|
@@ -326,7 +286,6 @@ dependencies:
|
|
326
286
|
type: :runtime
|
327
287
|
prerelease: false
|
328
288
|
version_requirements: !ruby/object:Gem::Requirement
|
329
|
-
none: false
|
330
289
|
requirements:
|
331
290
|
- - '>='
|
332
291
|
- !ruby/object:Gem::Version
|
@@ -334,7 +293,6 @@ dependencies:
|
|
334
293
|
- !ruby/object:Gem::Dependency
|
335
294
|
name: erubis
|
336
295
|
requirement: !ruby/object:Gem::Requirement
|
337
|
-
none: false
|
338
296
|
requirements:
|
339
297
|
- - '>='
|
340
298
|
- !ruby/object:Gem::Version
|
@@ -342,7 +300,6 @@ dependencies:
|
|
342
300
|
type: :runtime
|
343
301
|
prerelease: false
|
344
302
|
version_requirements: !ruby/object:Gem::Requirement
|
345
|
-
none: false
|
346
303
|
requirements:
|
347
304
|
- - '>='
|
348
305
|
- !ruby/object:Gem::Version
|
@@ -350,7 +307,6 @@ dependencies:
|
|
350
307
|
- !ruby/object:Gem::Dependency
|
351
308
|
name: mustache
|
352
309
|
requirement: !ruby/object:Gem::Requirement
|
353
|
-
none: false
|
354
310
|
requirements:
|
355
311
|
- - '>='
|
356
312
|
- !ruby/object:Gem::Version
|
@@ -358,7 +314,6 @@ dependencies:
|
|
358
314
|
type: :runtime
|
359
315
|
prerelease: false
|
360
316
|
version_requirements: !ruby/object:Gem::Requirement
|
361
|
-
none: false
|
362
317
|
requirements:
|
363
318
|
- - '>='
|
364
319
|
- !ruby/object:Gem::Version
|
@@ -366,7 +321,6 @@ dependencies:
|
|
366
321
|
- !ruby/object:Gem::Dependency
|
367
322
|
name: vegas
|
368
323
|
requirement: !ruby/object:Gem::Requirement
|
369
|
-
none: false
|
370
324
|
requirements:
|
371
325
|
- - ~>
|
372
326
|
- !ruby/object:Gem::Version
|
@@ -374,7 +328,6 @@ dependencies:
|
|
374
328
|
type: :runtime
|
375
329
|
prerelease: false
|
376
330
|
version_requirements: !ruby/object:Gem::Requirement
|
377
|
-
none: false
|
378
331
|
requirements:
|
379
332
|
- - ~>
|
380
333
|
- !ruby/object:Gem::Version
|
@@ -462,6 +415,7 @@ files:
|
|
462
415
|
- features/support/rails.rb
|
463
416
|
- gemfiles/rails31.gemfile
|
464
417
|
- gemfiles/rails32.gemfile
|
418
|
+
- gemfiles/rails40.gemfile
|
465
419
|
- lib/mongodb_logger.rb
|
466
420
|
- lib/mongodb_logger/adapters.rb
|
467
421
|
- lib/mongodb_logger/adapters/base.rb
|
@@ -473,6 +427,7 @@ files:
|
|
473
427
|
- lib/mongodb_logger/initializer_mixin.rb
|
474
428
|
- lib/mongodb_logger/logger.rb
|
475
429
|
- lib/mongodb_logger/rack_middleware.rb
|
430
|
+
- lib/mongodb_logger/rails_logger.rb
|
476
431
|
- lib/mongodb_logger/railtie.rb
|
477
432
|
- lib/mongodb_logger/replica_set_helper.rb
|
478
433
|
- lib/mongodb_logger/server.rb
|
@@ -537,34 +492,27 @@ files:
|
|
537
492
|
- tasks/mongodb_logger.rake
|
538
493
|
homepage: http://mongodb-logger.catware.org
|
539
494
|
licenses: []
|
495
|
+
metadata: {}
|
540
496
|
post_install_message:
|
541
497
|
rdoc_options:
|
542
498
|
- --charset=UTF-8
|
543
499
|
require_paths:
|
544
500
|
- lib
|
545
501
|
required_ruby_version: !ruby/object:Gem::Requirement
|
546
|
-
none: false
|
547
502
|
requirements:
|
548
503
|
- - '>='
|
549
504
|
- !ruby/object:Gem::Version
|
550
505
|
version: '0'
|
551
|
-
segments:
|
552
|
-
- 0
|
553
|
-
hash: -1758663782148875802
|
554
506
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
555
|
-
none: false
|
556
507
|
requirements:
|
557
508
|
- - '>='
|
558
509
|
- !ruby/object:Gem::Version
|
559
510
|
version: '0'
|
560
|
-
segments:
|
561
|
-
- 0
|
562
|
-
hash: -1758663782148875802
|
563
511
|
requirements: []
|
564
512
|
rubyforge_project: mongodb_logger
|
565
|
-
rubygems_version:
|
513
|
+
rubygems_version: 2.0.3
|
566
514
|
signing_key:
|
567
|
-
specification_version:
|
515
|
+
specification_version: 4
|
568
516
|
summary: MongoDB logger for Rails
|
569
517
|
test_files:
|
570
518
|
- features/mongodb_logger_web.feature
|