mimi-logger 0.2.5 → 1.0.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/lib/mimi/logger/version.rb +1 -1
- data/lib/mimi/logger.rb +43 -28
- data/mimi-logger.gemspec +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f4073d2c2cedcbb6741dfee2fb68376c3dfcfde
|
4
|
+
data.tar.gz: f279d8dd3b2eade0caaf2981bf90886506856a5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4b7606b4f8f079c275b5345318a9de9b382a0b33ed70be9463c5e843791dbf9fef21841ccbef4204c92439cc73306576736d20c9ffb44a45c348d5c2df95128
|
7
|
+
data.tar.gz: '0865e2709e8d6911c8e67f2d181b342170bcb67466bafea817e652d0d57e26f85dfa73a3a58362283641c2d5e4218873a93dc8a845e2e8e6e698e619bcc4415e'
|
data/lib/mimi/logger/version.rb
CHANGED
data/lib/mimi/logger.rb
CHANGED
@@ -22,12 +22,34 @@ module Mimi
|
|
22
22
|
delegate %i[debug? info? warn? error? fatal? << add log] => :logger_instance
|
23
23
|
delegate %i[context_id context_id= new_context! with_new_context with_preserved_context] => self
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
# Mimi::logger module manifest
|
26
|
+
#
|
27
|
+
def self.manifest
|
28
|
+
{
|
29
|
+
logger_format: {
|
30
|
+
desc: 'String or JSON',
|
31
|
+
default: 'json',
|
32
|
+
hidden: true
|
33
|
+
},
|
34
|
+
logger_context: {
|
35
|
+
desc: 'Logger will log context',
|
36
|
+
type: :boolean,
|
37
|
+
default: true,
|
38
|
+
hidden: true
|
39
|
+
},
|
40
|
+
logger_level: {
|
41
|
+
desc: 'Logger severity level threshold',
|
42
|
+
default: 'info',
|
43
|
+
type: ['debug', 'info', 'warn', 'error', 'fatal']
|
44
|
+
},
|
45
|
+
logger_cr_character: {
|
46
|
+
desc: 'Logger replaces new line with alternative CR character',
|
47
|
+
default: '↲', # alternative CR: ↵ ↲ ⏎
|
48
|
+
type: :string,
|
49
|
+
hidden: true
|
50
|
+
}
|
51
|
+
}
|
52
|
+
end
|
31
53
|
|
32
54
|
# Creates a new Logger instance
|
33
55
|
#
|
@@ -49,9 +71,12 @@ module Mimi
|
|
49
71
|
opts ||= {}
|
50
72
|
raise ArgumentError, '(io, opts) are expected as parameters' unless args.empty?
|
51
73
|
|
52
|
-
|
74
|
+
# module configured?
|
75
|
+
self.class.configure() if self.class.options.empty?
|
76
|
+
|
77
|
+
@options = self.class.options.deep_merge(opts)
|
53
78
|
@logger_instance = ::Logger.new(io)
|
54
|
-
@logger_instance.level = self.class.level_from_any(options[:
|
79
|
+
@logger_instance.level = self.class.level_from_any(options[:logger_level])
|
55
80
|
io.sync = true if io.respond_to?(:sync=)
|
56
81
|
@logger_instance.formatter = self.class.formatter(options)
|
57
82
|
end
|
@@ -138,14 +163,14 @@ module Mimi
|
|
138
163
|
# @return [Proc]
|
139
164
|
# @private
|
140
165
|
#
|
141
|
-
def self.formatter(
|
142
|
-
case
|
166
|
+
def self.formatter(local_options)
|
167
|
+
case local_options[:logger_format].to_s
|
143
168
|
when 'json'
|
144
|
-
formatter_json(
|
169
|
+
formatter_json(local_options)
|
145
170
|
when 'string'
|
146
|
-
formatter_string(
|
171
|
+
formatter_string(local_options)
|
147
172
|
else
|
148
|
-
raise "Invalid format specified for Mimi::Logger: '#{
|
173
|
+
raise "Invalid format specified for Mimi::Logger: '#{local_options[:logger_format]}'"
|
149
174
|
end
|
150
175
|
end
|
151
176
|
|
@@ -155,10 +180,10 @@ module Mimi
|
|
155
180
|
# @return [Proc]
|
156
181
|
# @private
|
157
182
|
#
|
158
|
-
def self.formatter_json(
|
183
|
+
def self.formatter_json(local_options)
|
159
184
|
proc do |severity, _datetime, _progname, message|
|
160
185
|
h = formatter_message_args_to_hash(message)
|
161
|
-
h[:c] = context_id if
|
186
|
+
h[:c] = context_id if local_options[:logger_context]
|
162
187
|
h[:s] = severity.to_s[0]
|
163
188
|
JSON.dump(h) + "\n"
|
164
189
|
end
|
@@ -170,13 +195,13 @@ module Mimi
|
|
170
195
|
# @return [Proc]
|
171
196
|
# @private
|
172
197
|
#
|
173
|
-
def self.formatter_string(
|
198
|
+
def self.formatter_string(local_options)
|
174
199
|
proc do |severity, _datetime, _progname, message|
|
175
200
|
h = formatter_message_args_to_hash(message)
|
176
201
|
parts = []
|
177
202
|
parts << severity.to_s[0]
|
178
|
-
parts << context_id if
|
179
|
-
parts << h[:m].to_s.tr("\n",
|
203
|
+
parts << context_id if local_options[:logger_context]
|
204
|
+
parts << h[:m].to_s.tr("\n", local_options[:logger_cr_character])
|
180
205
|
parts << '...' unless h.except(:m).empty?
|
181
206
|
parts.join(', ') + "\n"
|
182
207
|
end
|
@@ -290,16 +315,6 @@ module Mimi
|
|
290
315
|
yield
|
291
316
|
end
|
292
317
|
end
|
293
|
-
|
294
|
-
# @private
|
295
|
-
def self.module_manifest
|
296
|
-
{
|
297
|
-
log_level: {
|
298
|
-
desc: 'Logging level (any of the "debug", "info", "warn", "error", "fatal")',
|
299
|
-
default: 'info'
|
300
|
-
}
|
301
|
-
}
|
302
|
-
end
|
303
318
|
end # class Logger
|
304
319
|
end # module Mimi
|
305
320
|
|
data/mimi-logger.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
|
30
|
-
spec.add_dependency 'mimi-core'
|
30
|
+
spec.add_dependency 'mimi-core', '~> 1.0'
|
31
31
|
|
32
32
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
33
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mimi-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Kukushkin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mimi-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
version: '0'
|
124
124
|
requirements: []
|
125
125
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.6.14.
|
126
|
+
rubygems_version: 2.6.14.4
|
127
127
|
signing_key:
|
128
128
|
specification_version: 4
|
129
129
|
summary: A pre-configured logger for microservice applications
|