dldinternet-mixlib-logging 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/dldinternet/mixlib/logging.rb +140 -139
- data/lib/dldinternet/mixlib/logging/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjRkYTJmNGJiMmNhYzlhNDAxMTk0Mzc1MjkyMzY0NjBjZTJkYTFmMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDg3NDQ2MWU3ZGNkMTBiZjA4ZGQwNzYyYTgxMDBhNTFlMTBkNzA0Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWFkN2UzYWY1MWNhMTExZWI3YjlmMDU2NWVhMzMzZGVhNTBkMjI4YzA5YThj
|
10
|
+
MmUzNjBkYTZmYjdmMzExZWQ5NjFlNGU2NjI1MGNjZWNhMjE2MjI2MzhiYWQ0
|
11
|
+
YzYxMDJkOWYxYzUzZTVhNTZiMjUwMzVjZjUyYzdkZDZiODg1ODM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Mzg2NWI2ODU2YmZjMzc3MGRiMTk3YTY4NmYxYjIwZTRkMzY0YzRkYzkzMjMw
|
14
|
+
ZTY3OTNjNDg5NTkzNmRmNDVhNDk4MjE3NDg3ZDZmNTA4YWQxOTA5MmU4MmZi
|
15
|
+
NWU1MjcyNWMyMjE1Y2Q5NWEyYzM1ODE3MGY5ZTdiYTNhYWQ0ZWE=
|
@@ -6,9 +6,10 @@ unless defined? ::DLDInternet::Mixlib::Logging::ClassMethods
|
|
6
6
|
module Mixlib
|
7
7
|
module Logging
|
8
8
|
|
9
|
-
require
|
9
|
+
require 'rubygems'
|
10
10
|
require 'rubygems/gem_runner'
|
11
11
|
require 'rubygems/exceptions'
|
12
|
+
Object.send(:remove_const, :Logging) # Logging 1.8.2 claims Object.constants.include?(:Logging) so nobody else can extend it ... :(
|
12
13
|
require 'logging'
|
13
14
|
|
14
15
|
module ::Logging
|
@@ -114,33 +115,31 @@ unless defined? ::DLDInternet::Mixlib::Logging::ClassMethods
|
|
114
115
|
|
115
116
|
end
|
116
117
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
@scheme
|
118
|
+
class ::Logging::ColorScheme
|
119
|
+
def scheme(s=nil)
|
120
|
+
@scheme = s if s
|
121
|
+
@scheme
|
122
|
+
end
|
123
123
|
end
|
124
|
-
end
|
125
124
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
125
|
+
class ::Logging::Logger
|
126
|
+
class << self
|
127
|
+
def define_log_methods( logger )
|
128
|
+
::Logging::LEVELS.each do |name,num|
|
129
|
+
code = "undef :#{name} if method_defined? :#{name}\n"
|
130
|
+
code << "undef :#{name}? if method_defined? :#{name}?\n"
|
131
|
+
|
132
|
+
unless logger.level.is_a?(Fixnum)
|
133
|
+
puts "logger.level for #{logger.name} is a #{logger.level.class} instead of a Fixnum!!!"
|
134
|
+
exit -1
|
135
|
+
end
|
136
|
+
if logger.level > num
|
137
|
+
code << <<-CODE
|
139
138
|
def #{name}?( ) false end
|
140
139
|
def #{name}( data = nil, trace = false ) false end
|
141
|
-
|
142
|
-
|
143
|
-
|
140
|
+
CODE
|
141
|
+
else
|
142
|
+
code << <<-CODE
|
144
143
|
def #{name}?( ) true end
|
145
144
|
def #{name}( data = nil, trace = nil )
|
146
145
|
caller = Kernel.caller[3]
|
@@ -153,138 +152,140 @@ unless defined? ::DLDInternet::Mixlib::Logging::ClassMethods
|
|
153
152
|
end
|
154
153
|
true
|
155
154
|
end
|
156
|
-
|
157
|
-
|
155
|
+
CODE
|
156
|
+
end
|
158
157
|
|
159
|
-
|
158
|
+
logger._meta_eval(code, __FILE__, __LINE__)
|
159
|
+
end
|
160
|
+
logger
|
160
161
|
end
|
161
|
-
logger
|
162
|
-
end
|
163
|
-
|
164
|
-
# Overrides the new method such that only one Logger will be created
|
165
|
-
# for any given logger name.
|
166
|
-
#
|
167
|
-
def new( *args )
|
168
|
-
return super if args.empty?
|
169
|
-
|
170
|
-
repo = ::Logging::Repository.instance
|
171
|
-
name = repo.to_key(args.shift)
|
172
|
-
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
173
|
-
|
174
|
-
@mutex.synchronize do
|
175
|
-
logger = repo[name]
|
176
|
-
if logger.nil?
|
177
162
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
163
|
+
# Overrides the new method such that only one Logger will be created
|
164
|
+
# for any given logger name.
|
165
|
+
#
|
166
|
+
def new( *args )
|
167
|
+
return super if args.empty?
|
168
|
+
|
169
|
+
repo = ::Logging::Repository.instance
|
170
|
+
name = repo.to_key(args.shift)
|
171
|
+
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
172
|
+
|
173
|
+
@mutex.synchronize do
|
174
|
+
logger = repo[name]
|
175
|
+
if logger.nil?
|
176
|
+
|
177
|
+
master = repo.master_for(name)
|
178
|
+
if master
|
179
|
+
if repo.has_logger?(master)
|
180
|
+
logger = repo[master]
|
181
|
+
else
|
182
|
+
logger = super(master)
|
183
|
+
repo[master] = logger
|
184
|
+
repo.children(master).each {|c| c.__send__(:parent=, logger)}
|
185
|
+
end
|
186
|
+
repo[name] = logger
|
182
187
|
else
|
183
|
-
logger = super(
|
184
|
-
repo[
|
185
|
-
repo.children(
|
188
|
+
logger = super(name, opts)
|
189
|
+
repo[name] = logger
|
190
|
+
repo.children(name).each {|c| c.__send__(:parent=, logger)}
|
186
191
|
end
|
187
|
-
repo[name] = logger
|
188
|
-
else
|
189
|
-
logger = super(name, opts)
|
190
|
-
repo[name] = logger
|
191
|
-
repo.children(name).each {|c| c.__send__(:parent=, logger)}
|
192
192
|
end
|
193
|
+
logger
|
193
194
|
end
|
194
|
-
logger
|
195
195
|
end
|
196
|
+
|
196
197
|
end
|
197
198
|
|
198
|
-
|
199
|
+
# call-seq:
|
200
|
+
# Logger.new( name )
|
201
|
+
# Logger[name]
|
202
|
+
#
|
203
|
+
# Returns the logger identified by _name_.
|
204
|
+
#
|
205
|
+
# When _name_ is a +String+ or a +Symbol+ it will be used "as is" to
|
206
|
+
# retrieve the logger. When _name_ is a +Class+ the class name will be
|
207
|
+
# used to retrieve the logger. When _name_ is an object the name of the
|
208
|
+
# object's class will be used to retrieve the logger.
|
209
|
+
#
|
210
|
+
# Example:
|
211
|
+
#
|
212
|
+
# obj = MyClass.new
|
213
|
+
#
|
214
|
+
# log1 = Logger.new(obj)
|
215
|
+
# log2 = Logger.new(MyClass)
|
216
|
+
# log3 = Logger['MyClass']
|
217
|
+
#
|
218
|
+
# log1.object_id == log2.object_id # => true
|
219
|
+
# log2.object_id == log3.object_id # => true
|
220
|
+
#
|
221
|
+
def initialize( name, *args )
|
222
|
+
case name
|
223
|
+
when String
|
224
|
+
raise(ArgumentError, "logger must have a name") if name.empty?
|
225
|
+
else raise(ArgumentError, "logger name must be a String") end
|
226
|
+
|
227
|
+
repo = ::Logging::Repository.instance
|
228
|
+
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
229
|
+
_setup(name, opts.merge({:parent => repo.parent(name)}))
|
230
|
+
end
|
199
231
|
|
200
|
-
# call-seq:
|
201
|
-
# Logger.new( name )
|
202
|
-
# Logger[name]
|
203
|
-
#
|
204
|
-
# Returns the logger identified by _name_.
|
205
|
-
#
|
206
|
-
# When _name_ is a +String+ or a +Symbol+ it will be used "as is" to
|
207
|
-
# retrieve the logger. When _name_ is a +Class+ the class name will be
|
208
|
-
# used to retrieve the logger. When _name_ is an object the name of the
|
209
|
-
# object's class will be used to retrieve the logger.
|
210
|
-
#
|
211
|
-
# Example:
|
212
|
-
#
|
213
|
-
# obj = MyClass.new
|
214
|
-
#
|
215
|
-
# log1 = Logger.new(obj)
|
216
|
-
# log2 = Logger.new(MyClass)
|
217
|
-
# log3 = Logger['MyClass']
|
218
|
-
#
|
219
|
-
# log1.object_id == log2.object_id # => true
|
220
|
-
# log2.object_id == log3.object_id # => true
|
221
|
-
#
|
222
|
-
def initialize( name, *args )
|
223
|
-
case name
|
224
|
-
when String
|
225
|
-
raise(ArgumentError, "logger must have a name") if name.empty?
|
226
|
-
else raise(ArgumentError, "logger name must be a String") end
|
227
|
-
|
228
|
-
repo = ::Logging::Repository.instance
|
229
|
-
opts = args.last.instance_of?(Hash) ? args.pop : {}
|
230
|
-
_setup(name, opts.merge({:parent => repo.parent(name)}))
|
231
|
-
end
|
232
232
|
|
233
|
+
def logEvent(evt)
|
234
|
+
log_event evt
|
235
|
+
end
|
233
236
|
|
234
|
-
|
235
|
-
|
237
|
+
def get_trace
|
238
|
+
@trace
|
239
|
+
end
|
236
240
|
end
|
237
241
|
|
238
|
-
|
239
|
-
|
242
|
+
class ::Logging::Layouts::Pattern
|
243
|
+
# Arguments to sprintf keyed to directive letters
|
244
|
+
verbose, $VERBOSE = $VERBOSE, nil
|
245
|
+
# noinspection RubyStringKeysInHashInspection,RubyExpressionInStringInspection
|
246
|
+
DIRECTIVE_TABLE = {
|
247
|
+
'C' => 'event.file != "" ? "(\e[38;5;25m#{event.file}::#{event.line}\e[0m)" : ""',
|
248
|
+
'c' => 'event.logger'.freeze,
|
249
|
+
'd' => 'format_date(event.time)'.freeze,
|
250
|
+
'F' => 'event.file'.freeze,
|
251
|
+
'f' => 'File.basename(event.file)'.freeze,
|
252
|
+
'g' => 'event.file != "" ? "(\e[38;5;25m#{File.join(File.dirname(event.file).split(File::SEPARATOR)[-2..-1],File.basename(event.file))}::#{event.line}\e[0m)" : ""',
|
253
|
+
'l' => '::Logging::LNAMES[event.level]'.freeze,
|
254
|
+
'L' => 'event.line'.freeze,
|
255
|
+
'M' => 'event.method'.freeze,
|
256
|
+
'm' => 'format_obj(event.data)'.freeze,
|
257
|
+
'p' => 'Process.pid'.freeze,
|
258
|
+
'r' => 'Integer((event.time-@created_at)*1000).to_s'.freeze,
|
259
|
+
't' => 'Thread.current.object_id.to_s'.freeze,
|
260
|
+
'T' => 'Thread.current[:name]'.freeze,
|
261
|
+
'%' => :placeholder
|
262
|
+
}.freeze
|
263
|
+
|
264
|
+
# Human name aliases for directives - used for colorization of tokens
|
265
|
+
# noinspection RubyStringKeysInHashInspection
|
266
|
+
COLOR_ALIAS_TABLE = {
|
267
|
+
'C' => :file_line,
|
268
|
+
'c' => :logger,
|
269
|
+
'd' => :date,
|
270
|
+
'F' => :file,
|
271
|
+
'f' => :file,
|
272
|
+
'g' => :file,
|
273
|
+
'L' => :line,
|
274
|
+
'l' => :logger,
|
275
|
+
'M' => :method,
|
276
|
+
'm' => :message,
|
277
|
+
'p' => :pid,
|
278
|
+
'r' => :time,
|
279
|
+
'T' => :thread,
|
280
|
+
't' => :thread_id,
|
281
|
+
'X' => :mdc,
|
282
|
+
'x' => :ndc,
|
283
|
+
}.freeze
|
284
|
+
|
285
|
+
ensure
|
286
|
+
$VERBOSE = verbose
|
240
287
|
end
|
241
|
-
end
|
242
288
|
|
243
|
-
class ::Logging::Layouts::Pattern
|
244
|
-
# Arguments to sprintf keyed to directive letters
|
245
|
-
verbose, $VERBOSE = $VERBOSE, nil
|
246
|
-
# noinspection RubyStringKeysInHashInspection,RubyExpressionInStringInspection
|
247
|
-
DIRECTIVE_TABLE = {
|
248
|
-
'C' => 'event.file != "" ? "(\e[38;5;25m#{event.file}::#{event.line}\e[0m)" : ""',
|
249
|
-
'c' => 'event.logger'.freeze,
|
250
|
-
'd' => 'format_date(event.time)'.freeze,
|
251
|
-
'F' => 'event.file'.freeze,
|
252
|
-
'f' => 'File.basename(event.file)'.freeze,
|
253
|
-
'g' => 'event.file != "" ? "(\e[38;5;25m#{File.join(File.dirname(event.file).split(File::SEPARATOR)[-2..-1],File.basename(event.file))}::#{event.line}\e[0m)" : ""',
|
254
|
-
'l' => '::Logging::LNAMES[event.level]'.freeze,
|
255
|
-
'L' => 'event.line'.freeze,
|
256
|
-
'M' => 'event.method'.freeze,
|
257
|
-
'm' => 'format_obj(event.data)'.freeze,
|
258
|
-
'p' => 'Process.pid'.freeze,
|
259
|
-
'r' => 'Integer((event.time-@created_at)*1000).to_s'.freeze,
|
260
|
-
't' => 'Thread.current.object_id.to_s'.freeze,
|
261
|
-
'T' => 'Thread.current[:name]'.freeze,
|
262
|
-
'%' => :placeholder
|
263
|
-
}.freeze
|
264
|
-
|
265
|
-
# Human name aliases for directives - used for colorization of tokens
|
266
|
-
# noinspection RubyStringKeysInHashInspection
|
267
|
-
COLOR_ALIAS_TABLE = {
|
268
|
-
'C' => :file_line,
|
269
|
-
'c' => :logger,
|
270
|
-
'd' => :date,
|
271
|
-
'F' => :file,
|
272
|
-
'f' => :file,
|
273
|
-
'g' => :file,
|
274
|
-
'L' => :line,
|
275
|
-
'l' => :logger,
|
276
|
-
'M' => :method,
|
277
|
-
'm' => :message,
|
278
|
-
'p' => :pid,
|
279
|
-
'r' => :time,
|
280
|
-
'T' => :thread,
|
281
|
-
't' => :thread_id,
|
282
|
-
'X' => :mdc,
|
283
|
-
'x' => :ndc,
|
284
|
-
}.freeze
|
285
|
-
|
286
|
-
ensure
|
287
|
-
$VERBOSE = verbose
|
288
289
|
end
|
289
290
|
|
290
291
|
class FakeLogger
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dldinternet-mixlib-logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christo De Lange
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logging
|