central_logger 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +7 -4
- data/Rakefile +0 -4
- data/VERSION +1 -1
- data/central_logger.gemspec +2 -3
- data/lib/central_logger/mongo_logger.rb +5 -6
- data/test/test_helper.rb +6 -0
- data/test/unit/central_logger_test.rb +12 -2
- metadata +4 -4
data/README.md
CHANGED
@@ -4,7 +4,11 @@ Log to a central MongoDB from Rails apps.
|
|
4
4
|
|
5
5
|
## Usage
|
6
6
|
|
7
|
-
1.
|
7
|
+
1. If using Bundler, add the following to your Gemfile then refresh your dependencies by executing "bundle install":
|
8
|
+
|
9
|
+
gem "central_logger"
|
10
|
+
|
11
|
+
1. If you're just using gem:
|
8
12
|
|
9
13
|
gem install central_logger
|
10
14
|
|
@@ -12,13 +16,12 @@ Log to a central MongoDB from Rails apps.
|
|
12
16
|
|
13
17
|
include CentralLogger::Filter
|
14
18
|
|
15
|
-
1. If using Rails
|
16
|
-
automatically initialized for all environments.
|
19
|
+
1. If using Rails 3, SKIP this step. Otherwise, add the following to config/environment.rb:
|
17
20
|
|
18
21
|
require 'central_logger'
|
19
22
|
CentralLogger::Initializer.initialize_deprecated_logger(config)
|
20
23
|
|
21
|
-
1. Add mongo settings to database.yml for each environment in which you want to use
|
24
|
+
1. Add mongo settings to database.yml for each environment in which you want to use the Central Logger for logging. The values below are defaults:
|
22
25
|
|
23
26
|
development:
|
24
27
|
adapter: mysql
|
data/Rakefile
CHANGED
@@ -24,10 +24,6 @@ Jeweler::Tasks.new do |gem|
|
|
24
24
|
gem.email = "astupka@customink.com"
|
25
25
|
gem.homepage = "http://github.com/customink/central_logger"
|
26
26
|
gem.authors = ["Phil Burrows", "Alex Stupka"]
|
27
|
-
gem.rubyforge_project = "central_logger"
|
28
|
-
end
|
29
|
-
Jeweler::RubyforgeTasks.new do |rubyforge|
|
30
|
-
rubyforge.doc_task = "rdoc"
|
31
27
|
end
|
32
28
|
# dependencies defined in Gemfile
|
33
29
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/central_logger.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{central_logger}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Phil Burrows", "Alex Stupka"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-03}
|
13
13
|
s.description = %q{Centralized logging for rails apps using MongoDB. The idea and the core code is from http://github.com/peburrows/central_logger}
|
14
14
|
s.email = %q{astupka@customink.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -39,7 +39,6 @@ Gem::Specification.new do |s|
|
|
39
39
|
]
|
40
40
|
s.homepage = %q{http://github.com/customink/central_logger}
|
41
41
|
s.require_paths = ["lib"]
|
42
|
-
s.rubyforge_project = %q{central_logger}
|
43
42
|
s.rubygems_version = %q{1.3.7}
|
44
43
|
s.summary = %q{Central Logger for Rails}
|
45
44
|
s.test_files = [
|
@@ -52,16 +52,15 @@ module CentralLogger
|
|
52
52
|
:request_time => Time.now.getutc,
|
53
53
|
:application_name => @application_name
|
54
54
|
})
|
55
|
-
|
56
|
-
runtime =
|
57
|
-
runtime = Benchmark.measure do
|
58
|
-
yield
|
59
|
-
end
|
55
|
+
|
56
|
+
runtime = Benchmark.measure{ yield }.real
|
60
57
|
rescue Exception => e
|
61
58
|
add(3, e.message + "\n" + e.backtrace.join("\n"))
|
62
59
|
# Reraise the exception for anyone else who cares
|
63
60
|
raise e
|
64
61
|
ensure
|
62
|
+
# In case of exception, make sure runtime is set
|
63
|
+
runtime ||= 0
|
65
64
|
insert_log_record(runtime)
|
66
65
|
end
|
67
66
|
|
@@ -105,7 +104,7 @@ module CentralLogger
|
|
105
104
|
end
|
106
105
|
|
107
106
|
def insert_log_record(runtime)
|
108
|
-
@mongo_record[:runtime] = (runtime
|
107
|
+
@mongo_record[:runtime] = (runtime * 1000).ceil
|
109
108
|
@mongo_connection[@mongo_collection_name].insert(@mongo_record) rescue nil
|
110
109
|
end
|
111
110
|
|
data/test/test_helper.rb
CHANGED
@@ -17,6 +17,12 @@ class Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
def log_exception(msg)
|
21
|
+
@central_logger.mongoize({"id" => 1}) do
|
22
|
+
raise msg
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
20
26
|
def log_metadata(options)
|
21
27
|
@central_logger.mongoize({"id" => 1}) do
|
22
28
|
@central_logger.add_metadata(options)
|
@@ -5,6 +5,8 @@ require 'central_logger/mongo_logger'
|
|
5
5
|
class CentralLogger::MongoLoggerTest < Test::Unit::TestCase
|
6
6
|
extend LogMacros
|
7
7
|
|
8
|
+
EXCEPTION_MSG = "Foo"
|
9
|
+
|
8
10
|
context "A CentralLogger::MongoLogger" do
|
9
11
|
context "during configuration in instantiation" do
|
10
12
|
setup do
|
@@ -47,6 +49,7 @@ class CentralLogger::MongoLoggerTest < Test::Unit::TestCase
|
|
47
49
|
setup do
|
48
50
|
@central_logger = CentralLogger::MongoLogger.new
|
49
51
|
common_setup
|
52
|
+
@central_logger.reset_collection
|
50
53
|
end
|
51
54
|
|
52
55
|
context "upon insertion of a log record when active record is not used" do
|
@@ -67,7 +70,6 @@ class CentralLogger::MongoLoggerTest < Test::Unit::TestCase
|
|
67
70
|
setup do
|
68
71
|
@log_message = "TESTING"
|
69
72
|
require_bogus_active_record
|
70
|
-
@central_logger.reset_collection
|
71
73
|
log("\e[31m #{@log_message} \e[0m")
|
72
74
|
end
|
73
75
|
|
@@ -87,13 +89,20 @@ class CentralLogger::MongoLoggerTest < Test::Unit::TestCase
|
|
87
89
|
log_metadata(options)
|
88
90
|
assert_equal 1, @collection.find({"application" => self.class.name}).count
|
89
91
|
end
|
92
|
+
|
93
|
+
context "when an exception is raised" do
|
94
|
+
should "log the exception" do
|
95
|
+
assert_raise(RuntimeError, EXCEPTION_MSG) {log_exception(EXCEPTION_MSG)}
|
96
|
+
assert_equal 1, @collection.find_one({"messages.error" => /^#{EXCEPTION_MSG}/})["messages"]["error"].count
|
97
|
+
end
|
98
|
+
end
|
90
99
|
end
|
91
100
|
|
92
101
|
context "logging at INFO level" do
|
93
102
|
setup do
|
94
103
|
@central_logger = CentralLogger::MongoLogger.new(:level => CentralLogger::MongoLogger::INFO)
|
95
|
-
@central_logger.reset_collection
|
96
104
|
common_setup
|
105
|
+
@central_logger.reset_collection
|
97
106
|
log("INFO")
|
98
107
|
end
|
99
108
|
|
@@ -103,5 +112,6 @@ class CentralLogger::MongoLoggerTest < Test::Unit::TestCase
|
|
103
112
|
assert_equal 0, @collection.find_one({}, :fields => ["messages"])["messages"].count
|
104
113
|
end
|
105
114
|
end
|
115
|
+
|
106
116
|
end
|
107
117
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Phil Burrows
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-03 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
209
|
version: "0"
|
210
210
|
requirements: []
|
211
211
|
|
212
|
-
rubyforge_project:
|
212
|
+
rubyforge_project:
|
213
213
|
rubygems_version: 1.3.7
|
214
214
|
signing_key:
|
215
215
|
specification_version: 3
|