threadedlogger 1.2.1 → 1.3.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.
- data/History.txt +5 -0
- data/Manifest.txt +1 -0
- data/README.txt +14 -3
- data/Rakefile +12 -0
- data/lib/threadedlogger/core.rb +4 -0
- data/lib/threadedlogger/version.rb +1 -1
- data/test/test_initialized_flag.rb +62 -0
- data/threadedlogger.gemspec +52 -11
- metadata +111 -7
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -57,9 +57,13 @@ Under the covers, the dedicated thread uses the standard Ruby Logger
|
|
57
57
|
library. Refer to [Logger](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html)
|
58
58
|
for further detail.
|
59
59
|
|
60
|
-
The arguments are: the filename, the rotation period (defaults
|
61
|
-
the loglevel (defaults to 'info') and an optional formatter
|
62
|
-
be used instead of the one that comes with Logger.
|
60
|
+
The constructor arguments are: the filename, the rotation period (defaults
|
61
|
+
to 'daily'), the loglevel (defaults to 'info') and an optional formatter
|
62
|
+
proc that will be used instead of the one that comes with Logger.
|
63
|
+
|
64
|
+
The logging instance should be invoked with arguments only once. Subsequent
|
65
|
+
uses of the instance accessor should pass no args. Attempting to call the
|
66
|
+
instance method twice with arguments will raise an ArgumentError.
|
63
67
|
|
64
68
|
When you invoke one of the logging methods, the text is enqueued. The
|
65
69
|
background thread constantly pops messages off this queue and logs them. To
|
@@ -68,6 +72,13 @@ instance method before your program exits. On a clean shutdown this should
|
|
68
72
|
happen automatically, but if you exit in a funky way it might not capture
|
69
73
|
the last message.
|
70
74
|
|
75
|
+
You can tell if the logging instance for a class has been initialized by
|
76
|
+
calling the class method initialized?
|
77
|
+
|
78
|
+
ThreadedLogger.initialized? # false
|
79
|
+
logger = ThreadedLogger.instance('test/foo.log', 'daily', 'info')
|
80
|
+
ThreadedLogger.initialized? # true
|
81
|
+
|
71
82
|
The catalog of instances can be cleared using the ::clear and ::clear_all
|
72
83
|
class methods. Each takes an optional boolean argument indicating whether
|
73
84
|
::shutdown should be called on any active loggers before clearing them.
|
data/Rakefile
CHANGED
@@ -1,13 +1,25 @@
|
|
1
1
|
require 'rake/testtask'
|
2
2
|
require 'hoe'
|
3
3
|
|
4
|
+
Hoe.plugin :gemspec
|
5
|
+
Hoe.plugin :bundler
|
6
|
+
|
4
7
|
Hoe.spec 'threadedlogger' do
|
5
8
|
developer("James FitzGibbon", "james@nadt.net")
|
6
9
|
license "MIT"
|
10
|
+
dependency 'hoe', '~> 3.7.1', :dev
|
11
|
+
dependency 'hoe-gemspec', '~> 1.0.0', :dev
|
12
|
+
dependency 'hoe-bundler', '~> 1.2.0', :dev
|
13
|
+
dependency 'simplecov', '~> 0.7.1', :dev
|
14
|
+
dependency 'simplecov-console', '~> 0.1.1', :dev
|
15
|
+
dependency 'minitest', '~> 5.0.8', :dev
|
16
|
+
dependency 'minitest-debugger', '~> 1.0.2', :dev
|
7
17
|
end
|
8
18
|
|
9
19
|
task :default => [:unit_tests]
|
10
20
|
|
21
|
+
task :package => [ 'gem:spec', 'bundler:gemfile' ]
|
22
|
+
|
11
23
|
desc "Run basic tests"
|
12
24
|
Rake::TestTask.new("unit_tests") { |t|
|
13
25
|
t.libs.push 'lib'
|
data/lib/threadedlogger/core.rb
CHANGED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'minitest_helper'
|
2
|
+
|
3
|
+
class OurLog1 < ThreadedLogger
|
4
|
+
end
|
5
|
+
|
6
|
+
class OurLog2 < ThreadedLogger
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestInitializedFlag < ThreadedLoggerTest
|
10
|
+
def test_initialized_base
|
11
|
+
assert_equal false, ThreadedLogger.initialized?, 'instance is not initialized'
|
12
|
+
logger = ThreadedLogger.instance('test/foo.log', 'daily', 'info')
|
13
|
+
assert_instance_of ThreadedLogger, logger, "construct ThreadedLogger"
|
14
|
+
assert_equal true, ThreadedLogger.initialized?, 'instance is initialized'
|
15
|
+
end
|
16
|
+
def test_initialized_subclass
|
17
|
+
assert_equal false, ThreadedLogger.initialized?, 'ThreadedLogger is not initialized'
|
18
|
+
assert_equal false, OurLog1.initialized?, 'OurLog1 is not initialized'
|
19
|
+
assert_equal false, OurLog2.initialized?, 'OurLog2 is not initialized'
|
20
|
+
logger = ThreadedLogger.instance('test/foo.log', 'daily', 'info')
|
21
|
+
assert_instance_of ThreadedLogger, logger, "construct ThreadedLogger"
|
22
|
+
assert_equal true, ThreadedLogger.initialized?, 'ThreadedLogger is initialized'
|
23
|
+
assert_equal false, OurLog1.initialized?, 'OurLog1 is not initialized'
|
24
|
+
assert_equal false, OurLog2.initialized?, 'OurLog2 is not initialized'
|
25
|
+
ourlog1 = OurLog1.instance('test/bar.log', 'daily', 'info')
|
26
|
+
assert_instance_of OurLog1, ourlog1, "construct OurLog1"
|
27
|
+
assert_equal true, ThreadedLogger.initialized?, 'ThreadedLogger is initialized'
|
28
|
+
assert_equal true, OurLog1.initialized?, 'OurLog1 is initialized'
|
29
|
+
assert_equal false, OurLog2.initialized?, 'OurLog2 is not initialized'
|
30
|
+
ourlog2 = OurLog2.instance('test/baz.log', 'daily', 'info')
|
31
|
+
assert_instance_of OurLog2, ourlog2, "construct OurLog2"
|
32
|
+
assert_equal true, ThreadedLogger.initialized?, 'ThreadedLogger is initialized'
|
33
|
+
assert_equal true, OurLog1.initialized?, 'OurLog1 is initialized'
|
34
|
+
assert_equal true, OurLog2.initialized?, 'OurLog2 is initialized'
|
35
|
+
end
|
36
|
+
def test_initialized_clear
|
37
|
+
assert_equal false, ThreadedLogger.initialized?, 'instance is not initialized'
|
38
|
+
logger = ThreadedLogger.instance('test/foo.log', 'daily', 'info')
|
39
|
+
assert_instance_of ThreadedLogger, logger, "construct ThreadedLogger"
|
40
|
+
assert_equal true, ThreadedLogger.initialized?, 'instance is initialized'
|
41
|
+
ThreadedLogger.clear
|
42
|
+
assert_equal false, ThreadedLogger.initialized?, 'instance is not initialized after clear'
|
43
|
+
end
|
44
|
+
def test_initialized_clear_all
|
45
|
+
assert_equal false, ThreadedLogger.initialized?, 'ThreadedLogger is not initialized'
|
46
|
+
assert_equal false, OurLog1.initialized?, 'OurLog1 is not initialized'
|
47
|
+
assert_equal false, OurLog2.initialized?, 'OurLog2 is not initialized'
|
48
|
+
logger = ThreadedLogger.instance('test/foo.log', 'daily', 'info')
|
49
|
+
assert_instance_of ThreadedLogger, logger, "construct ThreadedLogger"
|
50
|
+
ourlog1 = OurLog1.instance('test/bar.log', 'daily', 'info')
|
51
|
+
assert_instance_of OurLog1, ourlog1, "construct OurLog1"
|
52
|
+
ourlog2 = OurLog2.instance('test/baz.log', 'daily', 'info')
|
53
|
+
assert_instance_of OurLog2, ourlog2, "construct OurLog2"
|
54
|
+
assert_equal true, ThreadedLogger.initialized?, 'ThreadedLogger is initialized'
|
55
|
+
assert_equal true, OurLog1.initialized?, 'OurLog1 is initialized'
|
56
|
+
assert_equal true, OurLog2.initialized?, 'OurLog2 is initialized'
|
57
|
+
ThreadedLogger.clear_all
|
58
|
+
assert_equal false, ThreadedLogger.initialized?, 'ThreadedLogger is not initialized after clear_all'
|
59
|
+
assert_equal false, OurLog1.initialized?, 'OurLog1 is not initialized after clear_all'
|
60
|
+
assert_equal false, OurLog2.initialized?, 'OurLog2 is not initialized after clear_all'
|
61
|
+
end
|
62
|
+
end
|
data/threadedlogger.gemspec
CHANGED
@@ -1,14 +1,55 @@
|
|
1
|
-
|
2
|
-
require 'threadedlogger'
|
1
|
+
# -*- encoding: utf-8 -*-
|
3
2
|
|
4
3
|
Gem::Specification.new do |s|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
s.name = "threadedlogger"
|
5
|
+
s.version = "1.3.0.20131002091417"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["James FitzGibbon"]
|
9
|
+
s.date = "2013-10-02"
|
10
|
+
s.description = "ThreadedLogger runs a dedicated logging thread around Ruby's Logger library\nto ensure that multiple threads don't step on each other's toes."
|
11
|
+
s.email = ["james@nadt.net"]
|
12
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt", "LICENSE.txt"]
|
13
|
+
s.files = ["History.txt", "Manifest.txt", "README.txt", "LICENSE.txt", "Rakefile", "lib/threadedlogger.rb", "lib/threadedlogger/core.rb", "lib/threadedlogger/version.rb", "lib/threadedlogger/logger.rb", "test/minitest_helper.rb", "test/test_logging.rb", "test/test_methods.rb", "test/test_threadedlogger.rb", "test/test_shutdown.rb", "test/test_clear.rb", "test/test_initialized_flag.rb", "threadedlogger.gemspec", "test/test_inheritable.rb", ".gemtest"]
|
14
|
+
s.homepage = "https://github.com/jf647/ThreadedLogger"
|
15
|
+
s.licenses = ["MIT"]
|
16
|
+
s.rdoc_options = ["--main", "README.txt"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = "threadedlogger"
|
19
|
+
s.rubygems_version = "1.8.23"
|
20
|
+
s.summary = "ThreadedLogger runs a dedicated logging thread around Ruby's Logger library to ensure that multiple threads don't step on each other's toes."
|
21
|
+
s.test_files = ["test/test_initialized_flag.rb", "test/test_methods.rb", "test/test_clear.rb", "test/test_inheritable.rb", "test/test_logging.rb", "test/test_shutdown.rb", "test/test_threadedlogger.rb"]
|
22
|
+
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
s.specification_version = 3
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
|
28
|
+
s.add_development_dependency(%q<hoe>, ["~> 3.7.1"])
|
29
|
+
s.add_development_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
30
|
+
s.add_development_dependency(%q<hoe-bundler>, ["~> 1.2.0"])
|
31
|
+
s.add_development_dependency(%q<simplecov>, ["~> 0.7.1"])
|
32
|
+
s.add_development_dependency(%q<simplecov-console>, ["~> 0.1.1"])
|
33
|
+
s.add_development_dependency(%q<minitest>, ["~> 5.0.8"])
|
34
|
+
s.add_development_dependency(%q<minitest-debugger>, ["~> 1.0.2"])
|
35
|
+
else
|
36
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
37
|
+
s.add_dependency(%q<hoe>, ["~> 3.7.1"])
|
38
|
+
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
39
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.2.0"])
|
40
|
+
s.add_dependency(%q<simplecov>, ["~> 0.7.1"])
|
41
|
+
s.add_dependency(%q<simplecov-console>, ["~> 0.1.1"])
|
42
|
+
s.add_dependency(%q<minitest>, ["~> 5.0.8"])
|
43
|
+
s.add_dependency(%q<minitest-debugger>, ["~> 1.0.2"])
|
44
|
+
end
|
45
|
+
else
|
46
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
47
|
+
s.add_dependency(%q<hoe>, ["~> 3.7.1"])
|
48
|
+
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
49
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.2.0"])
|
50
|
+
s.add_dependency(%q<simplecov>, ["~> 0.7.1"])
|
51
|
+
s.add_dependency(%q<simplecov-console>, ["~> 0.1.1"])
|
52
|
+
s.add_dependency(%q<minitest>, ["~> 5.0.8"])
|
53
|
+
s.add_dependency(%q<minitest-debugger>, ["~> 1.0.2"])
|
54
|
+
end
|
14
55
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: threadedlogger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 3.7.1
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,103 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 3.7.1
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: hoe-gemspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.0
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: hoe-bundler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.2.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.2.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: simplecov
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.7.1
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.7.1
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov-console
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.1.1
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.1.1
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: minitest
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 5.0.8
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 5.0.8
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: minitest-debugger
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.0.2
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.0.2
|
46
142
|
description: ! 'ThreadedLogger runs a dedicated logging thread around Ruby''s Logger
|
47
143
|
library
|
48
144
|
|
@@ -72,6 +168,7 @@ files:
|
|
72
168
|
- test/test_threadedlogger.rb
|
73
169
|
- test/test_shutdown.rb
|
74
170
|
- test/test_clear.rb
|
171
|
+
- test/test_initialized_flag.rb
|
75
172
|
- threadedlogger.gemspec
|
76
173
|
- test/test_inheritable.rb
|
77
174
|
- .gemtest
|
@@ -90,12 +187,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
187
|
- - ! '>='
|
91
188
|
- !ruby/object:Gem::Version
|
92
189
|
version: '0'
|
190
|
+
segments:
|
191
|
+
- 0
|
192
|
+
hash: -1214133197153868544
|
93
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
194
|
none: false
|
95
195
|
requirements:
|
96
196
|
- - ! '>='
|
97
197
|
- !ruby/object:Gem::Version
|
98
198
|
version: '0'
|
199
|
+
segments:
|
200
|
+
- 0
|
201
|
+
hash: -1214133197153868544
|
99
202
|
requirements: []
|
100
203
|
rubyforge_project: threadedlogger
|
101
204
|
rubygems_version: 1.8.23
|
@@ -104,9 +207,10 @@ specification_version: 3
|
|
104
207
|
summary: ThreadedLogger runs a dedicated logging thread around Ruby's Logger library
|
105
208
|
to ensure that multiple threads don't step on each other's toes.
|
106
209
|
test_files:
|
210
|
+
- test/test_initialized_flag.rb
|
211
|
+
- test/test_methods.rb
|
212
|
+
- test/test_clear.rb
|
213
|
+
- test/test_inheritable.rb
|
107
214
|
- test/test_logging.rb
|
108
215
|
- test/test_shutdown.rb
|
109
|
-
- test/test_inheritable.rb
|
110
|
-
- test/test_clear.rb
|
111
|
-
- test/test_methods.rb
|
112
216
|
- test/test_threadedlogger.rb
|