teelogger 0.2.0 → 0.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.
- checksums.yaml +4 -4
- data/features/logger.feature +16 -0
- data/features/step_definitions/steps.rb +7 -2
- data/lib/teelogger/version.rb +1 -1
- data/lib/teelogger.rb +17 -9
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9c8a99263a3785628fce130b7a1557eb0cc89dd
|
4
|
+
data.tar.gz: 8816398916355794b10a4c5a0bb47a0c710bd5cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78d098f5fb1393b842b5356f2eb4629ccaaf6d332e0c5976200f410e385a6498116e217e2f36aebc289977be130202295365d5aa271d781177766e2481933ce6
|
7
|
+
data.tar.gz: 57f4f91f1a68473af37473c968e2b4f221db3b5a901566e6f2ee0f184606af332ba52e3d5480df8aee277ab38ac138352b87e3eb5c1c0dc2a52e71077896f626
|
data/features/logger.feature
CHANGED
@@ -40,3 +40,19 @@ Feature: Logger
|
|
40
40
|
Scenario: multiple loggers
|
41
41
|
Given I create a TeeLogger with multiple loggers
|
42
42
|
Then I expect the class to let me access all loggers like a hash
|
43
|
+
|
44
|
+
@logger_04
|
45
|
+
Scenario Outline: Default logger without setting level
|
46
|
+
Given I create a TeeLogger with default parameters
|
47
|
+
And I write a log message at log level "<level>"
|
48
|
+
Then I expect the log level "<level>" to <condition> taken hold
|
49
|
+
And I expect the log message to appear on the screen
|
50
|
+
|
51
|
+
Examples:
|
52
|
+
| level | condition |
|
53
|
+
| DEBUG | not have |
|
54
|
+
| INFO | have |
|
55
|
+
| WARN | have |
|
56
|
+
| ERROR | have |
|
57
|
+
| FATAL | have |
|
58
|
+
|
@@ -25,11 +25,16 @@ Then(/^I expect the log message to appear on the screen$/) do
|
|
25
25
|
puts "Can't test this; please check manually"
|
26
26
|
end
|
27
27
|
|
28
|
-
Then(/^I expect the log level "(.*?)" to
|
28
|
+
Then(/^I expect the log level "(.*?)" to (.*?) taken hold$/) do |level, condition|
|
29
29
|
meth = "#{level.downcase}?".to_sym
|
30
30
|
res = logger.send(meth)
|
31
31
|
|
32
|
-
assert res, "
|
32
|
+
assert res, "Bad results!"
|
33
|
+
if 'have' === condition
|
34
|
+
assert res[0], "Log level not active!"
|
35
|
+
else
|
36
|
+
assert !res[0], "Log level is active!"
|
37
|
+
end
|
33
38
|
end
|
34
39
|
|
35
40
|
|
data/lib/teelogger/version.rb
CHANGED
data/lib/teelogger.rb
CHANGED
@@ -30,7 +30,7 @@ module TeeLogger
|
|
30
30
|
# end
|
31
31
|
# end
|
32
32
|
class TeeLogger
|
33
|
-
@default_level
|
33
|
+
@default_level
|
34
34
|
@loggers
|
35
35
|
|
36
36
|
##
|
@@ -54,7 +54,7 @@ module TeeLogger
|
|
54
54
|
def self.convert_level(val)
|
55
55
|
if val.is_a? String
|
56
56
|
begin
|
57
|
-
val = Logger.const_get(val)
|
57
|
+
val = Logger.const_get(val.upcase)
|
58
58
|
rescue NameError
|
59
59
|
val = Logger::Severity::WARN
|
60
60
|
end
|
@@ -108,6 +108,7 @@ module TeeLogger
|
|
108
108
|
end
|
109
109
|
|
110
110
|
# Initialization
|
111
|
+
@default_level = Logger::Severity::INFO
|
111
112
|
@loggers = {}
|
112
113
|
|
113
114
|
# Create logs for all arguments
|
@@ -148,8 +149,9 @@ module TeeLogger
|
|
148
149
|
dispatch(meth, *args, &block)
|
149
150
|
}
|
150
151
|
if "unknown" != meth
|
151
|
-
|
152
|
-
|
152
|
+
query = "#{meth}?"
|
153
|
+
define_method(query) { |*args, &block|
|
154
|
+
dispatch(query, *args, &block)
|
153
155
|
}
|
154
156
|
end
|
155
157
|
end
|
@@ -192,19 +194,25 @@ module TeeLogger
|
|
192
194
|
end
|
193
195
|
|
194
196
|
# Compose message
|
195
|
-
|
196
|
-
|
197
|
-
|
197
|
+
msg = args.map do |arg|
|
198
|
+
if arg.is_a? String
|
199
|
+
arg
|
200
|
+
else
|
201
|
+
arg.inspect
|
202
|
+
end
|
198
203
|
end
|
204
|
+
message = msg.join("|")
|
199
205
|
|
200
206
|
# Try to write the message to all loggers.
|
201
207
|
ret = []
|
202
208
|
@loggers.each do |key, logger|
|
203
209
|
if logger.respond_to? meth_name
|
204
210
|
if args.length > 0
|
205
|
-
ret << logger.send(meth_name,
|
211
|
+
ret << logger.send(meth_name, key) do
|
212
|
+
message
|
213
|
+
end
|
206
214
|
else
|
207
|
-
ret << logger.send(meth_name,
|
215
|
+
ret << logger.send(meth_name, &block)
|
208
216
|
end
|
209
217
|
end
|
210
218
|
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teelogger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Finkhaeuser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :development
|
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.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
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: :development
|
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: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Mini wrapper around Ruby Logger for logging to multiple destinations.
|
@@ -73,8 +73,8 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
77
|
-
- .travis.yml
|
76
|
+
- ".gitignore"
|
77
|
+
- ".travis.yml"
|
78
78
|
- Gemfile
|
79
79
|
- LICENSE
|
80
80
|
- README.md
|
@@ -95,17 +95,17 @@ require_paths:
|
|
95
95
|
- lib
|
96
96
|
required_ruby_version: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
|
-
- -
|
98
|
+
- - ">="
|
99
99
|
- !ruby/object:Gem::Version
|
100
100
|
version: '0'
|
101
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- -
|
103
|
+
- - ">="
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
107
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.0.3
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: Mini wrapper around Ruby Logger for logging to multiple destinations.
|