injectedlogger 0.0.5 → 0.0.6
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/README.md +8 -1
- data/lib/injectedlogger/delegator.rb +35 -10
- data/lib/injectedlogger/version.rb +1 -1
- data/lib/injectedlogger.rb +16 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c397eed4509dee6f22849d012f405627ec44d0b
|
4
|
+
data.tar.gz: ffb8aef686ebfb15a7d94586d254b0ebe31ed50e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d042ff0938ab25cdec8af039da44d9ef276f2a6b7458f80c573ec5d892adf769cf081d8422d34dd4def747dd9b7aa7c038678d417568e81a654c60abd6e3feb
|
7
|
+
data.tar.gz: 00655caa8274a8713e7adb4de3672da75c90958c435e5ffb119fe8d59e4f2d2507f3f6aba656b63b73457c0bb73d4ec51ac9409505469ba099f5417378f829e0
|
data/README.md
CHANGED
@@ -17,9 +17,13 @@ or you can set-up a default injection for your logger in case no one else sets i
|
|
17
17
|
```ruby
|
18
18
|
module MyLogger
|
19
19
|
InjectedLogger.declare required: [:debug, :info] do
|
20
|
+
# this gets executed if no logger has been injected at use time
|
20
21
|
require 'logger'
|
21
22
|
{ logger: Logger.new(STDERR), prefix: '[mylogger]' }
|
22
23
|
end
|
24
|
+
InjectedLogger.after_injection do |logger|
|
25
|
+
logger.info 'ok' # you can also force your prefix with logger.prefix = str
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
class WantsLogging
|
@@ -32,7 +36,10 @@ end
|
|
32
36
|
|
33
37
|
class ThisAlsoWantsIt
|
34
38
|
include MyLogger
|
35
|
-
|
39
|
+
|
40
|
+
def some_other_method_with_debug_logging
|
41
|
+
logger.debug 'some_debug_info'
|
42
|
+
end
|
36
43
|
end
|
37
44
|
```
|
38
45
|
|
@@ -62,8 +62,15 @@ module InjectedLogger
|
|
62
62
|
def add_as_fallback(nonnative, fallback)
|
63
63
|
nonnative.each do |lvl|
|
64
64
|
remove_level lvl
|
65
|
-
add_level lvl do
|
66
|
-
|
65
|
+
add_level lvl do |*msg, &blk|
|
66
|
+
if blk
|
67
|
+
public_send fallback, *msg do
|
68
|
+
str = blk.call
|
69
|
+
"[#{lvl.upcase}] #{str}"
|
70
|
+
end
|
71
|
+
else
|
72
|
+
public_send fallback, "[#{lvl.upcase}] #{msg.join ' '}"
|
73
|
+
end
|
67
74
|
end
|
68
75
|
end
|
69
76
|
end
|
@@ -92,12 +99,19 @@ module InjectedLogger
|
|
92
99
|
|
93
100
|
def add_level_method(lvl)
|
94
101
|
if prefix.nil? or prefix.empty?
|
95
|
-
add_level lvl do
|
96
|
-
logger.send lvl, msg
|
102
|
+
add_level lvl do |*msg, &blk|
|
103
|
+
logger.send lvl, *msg, &blk
|
97
104
|
end
|
98
105
|
else
|
99
|
-
add_level lvl do
|
100
|
-
|
106
|
+
add_level lvl do |*msg, &blk|
|
107
|
+
if blk
|
108
|
+
logger.send lvl, *msg do
|
109
|
+
str = blk.call
|
110
|
+
"#{prefix} #{str}"
|
111
|
+
end
|
112
|
+
else
|
113
|
+
logger.send lvl, "#{prefix} #{msg.join ' '}"
|
114
|
+
end
|
101
115
|
end
|
102
116
|
end
|
103
117
|
end
|
@@ -112,14 +126,25 @@ module InjectedLogger
|
|
112
126
|
if prefix and not prefix.empty?
|
113
127
|
prefix_s += " " + prefix
|
114
128
|
end
|
115
|
-
klass.define_singleton_method lvl do
|
116
|
-
|
129
|
+
klass.define_singleton_method lvl do |*msg, &blk|
|
130
|
+
if blk
|
131
|
+
logger.send :log, *msg do
|
132
|
+
str = blk.call
|
133
|
+
"#{prefix_s} #{str}"
|
134
|
+
end
|
135
|
+
else
|
136
|
+
logger.send :log, "#{prefix_s} #{msg.join ' '}"
|
137
|
+
end
|
117
138
|
end
|
118
139
|
else
|
119
140
|
# assume two or more params, best effort with 1st being level
|
120
141
|
if lvl_s = ruby_logger_severity(lvl)
|
121
|
-
klass.define_singleton_method lvl do
|
122
|
-
|
142
|
+
klass.define_singleton_method lvl do |*msg, &blk|
|
143
|
+
if blk
|
144
|
+
logger.send :log, lvl_s, *msg, &blk
|
145
|
+
else
|
146
|
+
logger.send :log, lvl_s, msg.join(' ')
|
147
|
+
end
|
123
148
|
end
|
124
149
|
end
|
125
150
|
end
|
data/lib/injectedlogger.rb
CHANGED
@@ -8,7 +8,8 @@ module InjectedLogger
|
|
8
8
|
# module MyLogger
|
9
9
|
# InjectedLogger.inject do
|
10
10
|
# require 'logger'
|
11
|
-
# #
|
11
|
+
# # parameters are inject() params, none is required, but if
|
12
|
+
# # logger is not present, a default one will be used.
|
12
13
|
# { logger: Logger.new(STDERR), prefix: '[mylogger]', ... }
|
13
14
|
# end
|
14
15
|
# end
|
@@ -38,7 +39,6 @@ module InjectedLogger
|
|
38
39
|
on.send :remove_method, method_name
|
39
40
|
unless InjectedLogger::Logger.injected?
|
40
41
|
args = blk ? blk.call : nil
|
41
|
-
args = InjectedLogger.default_logger if args.nil? or args == :default
|
42
42
|
InjectedLogger.inject_logger args, required
|
43
43
|
end
|
44
44
|
required.uniq!
|
@@ -47,10 +47,20 @@ module InjectedLogger
|
|
47
47
|
on.send :define_method, method_name do
|
48
48
|
InjectedLogger::Logger
|
49
49
|
end
|
50
|
+
InjectedLogger.after_hook.call(InjectedLogger::Logger) if InjectedLogger.after_hook
|
50
51
|
InjectedLogger::Logger
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
55
|
+
def self.after_injection(&blk)
|
56
|
+
self.after_hook = blk
|
57
|
+
end
|
58
|
+
|
59
|
+
class << self
|
60
|
+
attr_accessor :after_hook
|
61
|
+
private :after_hook=
|
62
|
+
end
|
63
|
+
|
54
64
|
private
|
55
65
|
|
56
66
|
def self.default_logger
|
@@ -59,10 +69,13 @@ module InjectedLogger
|
|
59
69
|
end
|
60
70
|
|
61
71
|
def self.inject_logger(args, required)
|
72
|
+
args ||= {}
|
73
|
+
args = default_logger.merge(args) unless args.has_key? :logger
|
62
74
|
logger = args.delete :logger
|
63
75
|
unless required.empty?
|
64
76
|
args[:levels] ||= []
|
65
|
-
args[:levels].push(required).flatten
|
77
|
+
args[:levels].push(required).flatten!
|
78
|
+
args[:levels].uniq!
|
66
79
|
end
|
67
80
|
InjectedLogger::Logger.inject(logger, args)
|
68
81
|
end
|