mixlib-log 3.0.1 → 3.0.8
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/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
|