mixlib-log 3.0.1 → 3.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mixlib/log.rb +18 -14
- data/lib/mixlib/log/child.rb +3 -3
- data/lib/mixlib/log/formatter.rb +1 -1
- data/lib/mixlib/log/logger.rb +6 -4
- data/lib/mixlib/log/logging.rb +1 -1
- data/lib/mixlib/log/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95774ad5586c72101fe71dde872dc0f88c01de6d9ddffb152b3015694e76b397
|
4
|
+
data.tar.gz: ed308a5b638fb1e78389c868e58c0a41385e6f2dd78c20f92e9b1e1c2f3bf351
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a28f3d2af4a0c823cad7f648fdd9f16d58f16e6ad65b7f2e154c2db904ff4bd7494444c6a6c04115b08463f463f0d589fd874eea0457d591b085e2b914319a4b
|
7
|
+
data.tar.gz: 1a92978027ba1bc10acbb74b5959a21f27d1c4918e85e29b893084bea4a3676cb83e3788ec10d85a3cba33fe1d5f1080acdcd3067acfac0c30b7fab896104121
|
data/lib/mixlib/log.rb
CHANGED
@@ -17,26 +17,27 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
19
|
require "logger"
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
require_relative "log/version"
|
21
|
+
require_relative "log/formatter"
|
22
|
+
require_relative "log/child"
|
23
|
+
require_relative "log/logging"
|
24
|
+
require_relative "log/logger"
|
25
25
|
|
26
26
|
module Mixlib
|
27
27
|
module Log
|
28
28
|
|
29
29
|
include Logging
|
30
|
-
@logger, @loggers = nil
|
31
30
|
|
32
31
|
def reset!
|
32
|
+
@logger ||= nil
|
33
|
+
@loggers ||= []
|
33
34
|
close!
|
34
|
-
@logger
|
35
|
+
@logger = @loggers = nil
|
35
36
|
@metadata = {}
|
36
37
|
end
|
37
38
|
|
38
39
|
# An Array of log devices that will be logged to. Defaults to just the default
|
39
|
-
#
|
40
|
+
# \@logger log device, but you can push to this array to add more devices.
|
40
41
|
def loggers
|
41
42
|
@loggers ||= [logger]
|
42
43
|
end
|
@@ -46,7 +47,7 @@ module Mixlib
|
|
46
47
|
# and creates a new one if it doesn't yet exist
|
47
48
|
##
|
48
49
|
def logger
|
49
|
-
@logger
|
50
|
+
@logger ||= init
|
50
51
|
end
|
51
52
|
|
52
53
|
# Sets the log device to +new_log_device+. Any additional loggers
|
@@ -60,7 +61,7 @@ module Mixlib
|
|
60
61
|
if other.respond_to?(:loggers) && other.respond_to?(:logger)
|
61
62
|
@loggers = other.loggers
|
62
63
|
@logger = other.logger
|
63
|
-
elsif other.
|
64
|
+
elsif other.is_a?(Array)
|
64
65
|
@loggers = other
|
65
66
|
@logger = other.first
|
66
67
|
else
|
@@ -81,7 +82,7 @@ module Mixlib
|
|
81
82
|
def init(*opts)
|
82
83
|
reset!
|
83
84
|
@logger = logger_for(*opts)
|
84
|
-
@logger.formatter = Mixlib::Log::Formatter.new
|
85
|
+
@logger.formatter = Mixlib::Log::Formatter.new if @logger.respond_to?(:formatter=)
|
85
86
|
@logger.level = Logger::WARN
|
86
87
|
@configured = true
|
87
88
|
@parent = nil
|
@@ -109,6 +110,7 @@ module Mixlib
|
|
109
110
|
def level=(new_level)
|
110
111
|
level_int = LEVEL_NAMES.key?(new_level) ? new_level : LEVELS[new_level]
|
111
112
|
raise ArgumentError, "Log level must be one of :trace, :debug, :info, :warn, :error, or :fatal" if level_int.nil?
|
113
|
+
|
112
114
|
loggers.each { |l| l.level = level_int }
|
113
115
|
end
|
114
116
|
|
@@ -124,7 +126,7 @@ module Mixlib
|
|
124
126
|
# Note that we *only* query the default logger (@logger) and not any other
|
125
127
|
# loggers that may have been added, even though it is possible to configure
|
126
128
|
# two (or more) loggers at different log levels.
|
127
|
-
|
129
|
+
%i{trace? debug? info? warn? error? fatal?}.each do |method_name|
|
128
130
|
define_method(method_name) do
|
129
131
|
logger.send(method_name)
|
130
132
|
end
|
@@ -136,7 +138,7 @@ module Mixlib
|
|
136
138
|
|
137
139
|
def add(severity, message = nil, progname = nil, data: {}, &block)
|
138
140
|
message, progname, data = yield if block_given?
|
139
|
-
data = metadata.merge(data) if metadata.
|
141
|
+
data = metadata.merge(data) if metadata.is_a?(Hash) && data.is_a?(Hash)
|
140
142
|
loggers.each do |l|
|
141
143
|
# if we don't have any metadata, let's not do the potentially expensive
|
142
144
|
# merging and managing that this call requires
|
@@ -170,7 +172,7 @@ module Mixlib
|
|
170
172
|
|
171
173
|
def logger_for(*opts)
|
172
174
|
if opts.empty?
|
173
|
-
Mixlib::Log::Logger.new(
|
175
|
+
Mixlib::Log::Logger.new($stdout)
|
174
176
|
elsif LEVELS.keys.inject(true) { |quacks, level| quacks && opts.first.respond_to?(level) }
|
175
177
|
opts.first
|
176
178
|
else
|
@@ -190,7 +192,9 @@ module Mixlib
|
|
190
192
|
# via public API. In order to reduce amount of impact and
|
191
193
|
# handle only File type log devices I had to use this method
|
192
194
|
# to get access to it.
|
195
|
+
next unless logger.instance_variable_defined?(:"@logdev")
|
193
196
|
next unless (logdev = logger.instance_variable_get(:"@logdev"))
|
197
|
+
|
194
198
|
loggers_to_close << logger if logdev.filename
|
195
199
|
end
|
196
200
|
loggers_to_close
|
data/lib/mixlib/log/child.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
|
17
|
+
require_relative "logging"
|
18
18
|
|
19
19
|
module Mixlib
|
20
20
|
module Log
|
@@ -36,14 +36,14 @@ module Mixlib
|
|
36
36
|
# Note that we *only* query the default logger (@logger) and not any other
|
37
37
|
# loggers that may have been added, even though it is possible to configure
|
38
38
|
# two (or more) loggers at different log levels.
|
39
|
-
|
39
|
+
%i{trace? debug? info? warn? error? fatal?}.each do |method_name|
|
40
40
|
define_method(method_name) do
|
41
41
|
parent.send(method_name)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
45
|
def add(severity, message = nil, progname = nil, data: {}, &block)
|
46
|
-
data = metadata.merge(data) if data.
|
46
|
+
data = metadata.merge(data) if data.is_a?(Hash)
|
47
47
|
parent.send(:pass, severity, message, progname, data: data, &block)
|
48
48
|
end
|
49
49
|
|
data/lib/mixlib/log/formatter.rb
CHANGED
@@ -31,7 +31,7 @@ module Mixlib
|
|
31
31
|
# Otherwise, doesn't print the time.
|
32
32
|
def call(severity, time, progname, msg)
|
33
33
|
if @@show_time
|
34
|
-
sprintf("[%s] %s: %s\n", time.iso8601
|
34
|
+
sprintf("[%s] %s: %s\n", time.iso8601, severity, msg2str(msg))
|
35
35
|
else
|
36
36
|
sprintf("%s: %s\n", severity, msg2str(msg))
|
37
37
|
end
|
data/lib/mixlib/log/logger.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "logger"
|
2
|
-
|
2
|
+
require_relative "logging"
|
3
3
|
|
4
4
|
# A subclass of Ruby's stdlib Logger with all the mutex and logrotation stuff
|
5
5
|
# ripped out, and metadata added in.
|
@@ -21,7 +21,7 @@ module Mixlib
|
|
21
21
|
#
|
22
22
|
# +logdev+::
|
23
23
|
# The log device. This is a filename (String) or IO object (typically
|
24
|
-
#
|
24
|
+
# +$stdout+, +$stderr+, or an open file).
|
25
25
|
# +shift_age+::
|
26
26
|
# Number of old log files to keep, *or* frequency of rotation (+daily+,
|
27
27
|
# +weekly+ or +monthly+).
|
@@ -45,14 +45,16 @@ module Mixlib
|
|
45
45
|
|
46
46
|
def add_data(severity, message, progname, data: {})
|
47
47
|
return true if @logdev.nil? || severity < @level
|
48
|
+
|
48
49
|
data ||= {}
|
49
|
-
if message.
|
50
|
+
if message.is_a?(::Exception)
|
50
51
|
data[:err] = message
|
51
52
|
else
|
52
53
|
data[:msg] = message
|
53
54
|
end
|
54
55
|
@logdev.write(
|
55
|
-
format_message(to_label(severity), Time.now, progname, data)
|
56
|
+
format_message(to_label(severity), Time.now, progname, data)
|
57
|
+
)
|
56
58
|
true
|
57
59
|
end
|
58
60
|
alias_method :add, :add_data
|
data/lib/mixlib/log/logging.rb
CHANGED
@@ -41,7 +41,7 @@ module Mixlib
|
|
41
41
|
|
42
42
|
# Define the standard logger methods on this class programmatically.
|
43
43
|
# No need to incur method_missing overhead on every log call.
|
44
|
-
|
44
|
+
%i{trace debug info warn error fatal}.each do |method_name|
|
45
45
|
level = LEVELS[method_name]
|
46
46
|
define_method(method_name) do |msg = nil, data: {}, &block|
|
47
47
|
pass(level, msg, data: data, &block)
|
data/lib/mixlib/log/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mixlib-log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: info@chef.io
|
@@ -42,8 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '0'
|
44
44
|
requirements: []
|
45
|
-
|
46
|
-
rubygems_version: 2.7.6
|
45
|
+
rubygems_version: 3.0.3
|
47
46
|
signing_key:
|
48
47
|
specification_version: 4
|
49
48
|
summary: A gem that provides a simple mixin for log functionality
|