extended-logger 0.1.1 → 0.1.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f2713c515733dc13f51bf477ac74c0c9f0ca10b
|
4
|
+
data.tar.gz: c5e036c168e6f6fe60cf61aca39651622ff2c90c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43e937e9ff1752630a29c230850da54a4a3596b9baf24bb472f9cc0c9fa2fce50c37b1fedbd73de6d315c37d174a40b3271d085f42bf60a4fcb0607eee1d3f67
|
7
|
+
data.tar.gz: 8057fe6a05cd17779e1d57e8b1060e7362746e8d2b46e317bd1e9208293fe8c79ed7b89a7f6d5624fd0219fde869de77491b4055c4e9b4258b5d068b0762bde8
|
data/lib/extended_logger.rb
CHANGED
@@ -27,27 +27,34 @@ class ExtendedLogger < Logger
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.levels
|
30
|
-
|
30
|
+
@levels ||= {
|
31
|
+
-7 => 'OBSOLETE'.freeze,
|
32
|
+
-6 => 'DATA'.freeze,
|
33
|
+
-5 => 'TRACE'.freeze,
|
34
|
+
-4 => 'DEBUG'.freeze,
|
35
|
+
-3 => 'OPT_DATA'.freeze,
|
36
|
+
-2 => 'OPT_TRACE'.freeze,
|
37
|
+
-1 => 'OPT_DEBUG'.freeze,
|
38
|
+
0 => 'INFO'.freeze,
|
39
|
+
1 => 'PASS'.freeze,
|
40
|
+
2 => 'FAIL'.freeze,
|
41
|
+
3 => 'FOCUS'.freeze,
|
42
|
+
4 => 'WARN'.freeze,
|
43
|
+
5 => 'ERROR'.freeze,
|
44
|
+
6 => 'FATAL'.freeze,
|
45
|
+
}
|
31
46
|
end
|
32
47
|
|
33
|
-
def
|
34
|
-
|
48
|
+
def self.level? level
|
49
|
+
levels.key? level
|
35
50
|
end
|
36
51
|
|
37
52
|
def format_severity severity
|
38
|
-
unless self.class.
|
53
|
+
unless self.class.level? severity
|
39
54
|
Kernel.warn "(extended-logger) Unknown log severity level #{severity.inspect}"
|
40
55
|
end
|
41
56
|
|
42
|
-
|
43
|
-
when -5 then 'OBS_DATA'.freeze
|
44
|
-
when -4 then 'OBS_TRACE'.freeze
|
45
|
-
when -3 then 'OBS_DEBUG'.freeze
|
46
|
-
when -2 then 'DATA'.freeze
|
47
|
-
when -1 then 'TRACE'.freeze
|
48
|
-
when 6 then 'FOCUS'.freeze
|
49
|
-
else super
|
50
|
-
end
|
57
|
+
self.class.levels.fetch severity, 'ANY'.freeze
|
51
58
|
end
|
52
59
|
|
53
60
|
def io
|
@@ -55,23 +62,13 @@ class ExtendedLogger < Logger
|
|
55
62
|
@logdev.dev
|
56
63
|
end
|
57
64
|
|
58
|
-
def
|
59
|
-
add
|
60
|
-
end
|
61
|
-
|
62
|
-
def obs_debug *arguments, &block
|
63
|
-
add -3, *arguments, &block
|
64
|
-
end
|
65
|
-
|
66
|
-
def obs_trace *arguments, &block
|
67
|
-
add -4, *arguments, &block
|
68
|
-
end
|
69
|
-
|
70
|
-
def trace *arguments, &block
|
71
|
-
add -1, *arguments, &block
|
65
|
+
def unknown *arguments, &block
|
66
|
+
add 7, *arguments, &block
|
72
67
|
end
|
73
68
|
|
74
|
-
|
75
|
-
|
69
|
+
levels.each do |level, name|
|
70
|
+
define_method name.downcase do |*arguments, &block|
|
71
|
+
add level, *arguments, &block
|
72
|
+
end
|
76
73
|
end
|
77
74
|
end
|
@@ -19,20 +19,18 @@ class ExtendedLogger
|
|
19
19
|
def call
|
20
20
|
logger = ExtendedLogger.new device
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
logger.formatter = Formatter.new
|
26
|
-
end
|
22
|
+
formatter = Formatter.new
|
23
|
+
formatter.palette = Formatter.default_palette if colors? logger.io
|
24
|
+
logger.formatter = formatter
|
27
25
|
|
28
26
|
logger
|
29
27
|
end
|
30
28
|
|
31
29
|
def colors? io
|
32
30
|
if io.tty?
|
33
|
-
ENV['
|
31
|
+
ENV['LOGGER_COLOR'] != 'off'
|
34
32
|
else
|
35
|
-
ENV['
|
33
|
+
ENV['LOGGER_COLOR'] == 'on'
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
@@ -1,9 +1,21 @@
|
|
1
1
|
class ExtendedLogger
|
2
2
|
class Formatter
|
3
3
|
attr_writer :logger_formatter
|
4
|
+
attr_writer :palette
|
4
5
|
|
5
|
-
def call *arguments
|
6
|
-
delegate *arguments
|
6
|
+
def call severity, *arguments
|
7
|
+
log_entry = delegate severity, *arguments
|
8
|
+
color log_entry, severity
|
9
|
+
end
|
10
|
+
|
11
|
+
def color log_entry, severity
|
12
|
+
colorizer = palette[severity]
|
13
|
+
|
14
|
+
if colorizer
|
15
|
+
log_entry = "#{colorizer}#{log_entry}\e[0m"
|
16
|
+
end
|
17
|
+
|
18
|
+
log_entry
|
7
19
|
end
|
8
20
|
|
9
21
|
def delegate *arguments, message
|
@@ -35,5 +47,43 @@ class ExtendedLogger
|
|
35
47
|
def logger_formatter
|
36
48
|
@logger_formatter ||= Logger::Formatter.new
|
37
49
|
end
|
50
|
+
|
51
|
+
def palette
|
52
|
+
@palette ||= {}
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.ansi_colors
|
56
|
+
@ansi_colors ||= %i(black red green yellow blue magenta cyan white)
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.col fg, brightness, bg=nil
|
60
|
+
brightness = { :bright => 1, :normal => 0 }.fetch brightness
|
61
|
+
escape = "\e[#{brightness};3#{ansi_colors.index fg}m"
|
62
|
+
|
63
|
+
if bg
|
64
|
+
escape << "\e[4#{ansi_colors.index bg}m"
|
65
|
+
end
|
66
|
+
|
67
|
+
escape
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.default_palette
|
71
|
+
@default_palette ||= {
|
72
|
+
'OBSOLETE' => col(:black, :normal),
|
73
|
+
'DATA' => col(:green, :normal),
|
74
|
+
'TRACE' => col(:cyan, :normal),
|
75
|
+
'DEBUG' => col(:blue, :normal),
|
76
|
+
'OPT_DATA' => col(:green, :normal, :white),
|
77
|
+
'OPT_TRACE' => col(:cyan, :normal, :white),
|
78
|
+
'OPT_DEBUG' => col(:blue, :normal, :white),
|
79
|
+
'PASS' => col(:white, :bright, :green),
|
80
|
+
'FAIL' => col(:white, :bright, :red),
|
81
|
+
'FOCUS' => col(:white, :bright, :blue),
|
82
|
+
'WARN' => col(:yellow, :normal),
|
83
|
+
'ERROR' => col(:red, :normal),
|
84
|
+
'FATAL' => col(:black, :bright, :red),
|
85
|
+
'ANY' => col(:white, :bright, :magenta),
|
86
|
+
}
|
87
|
+
end
|
38
88
|
end
|
39
89
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extended-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Ladd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
extended-logger provides a richer logger implementation than the built in ruby
|
@@ -21,7 +21,6 @@ extensions: []
|
|
21
21
|
extra_rdoc_files: []
|
22
22
|
files:
|
23
23
|
- lib/extended_logger.rb
|
24
|
-
- lib/extended_logger/colored_formatter.rb
|
25
24
|
- lib/extended_logger/extended_logger.rb
|
26
25
|
- lib/extended_logger/factory.rb
|
27
26
|
- lib/extended_logger/formatter.rb
|
@@ -1,51 +0,0 @@
|
|
1
|
-
class ExtendedLogger
|
2
|
-
class ColoredFormatter < Formatter
|
3
|
-
ANSI_COLORS = %i(black red green yellow blue magenta cyan white)
|
4
|
-
|
5
|
-
attr_writer :palette
|
6
|
-
|
7
|
-
def bg *args
|
8
|
-
col :bg, *args
|
9
|
-
end
|
10
|
-
|
11
|
-
def call *arguments
|
12
|
-
log_entry = delegate *arguments
|
13
|
-
|
14
|
-
severity = arguments.fetch 0
|
15
|
-
colorizer = palette.fetch severity do
|
16
|
-
-> message { message }
|
17
|
-
end
|
18
|
-
|
19
|
-
instance_exec log_entry, &colorizer
|
20
|
-
end
|
21
|
-
|
22
|
-
def col fgbg, color_code, intensity_code, str
|
23
|
-
color_num = ANSI_COLORS.index color_code
|
24
|
-
intensity_num = { :normal => 0, :bright => 1 }.fetch intensity_code
|
25
|
-
fgbg_num = { :fg => 3, :bg => 4 }.fetch fgbg
|
26
|
-
"\e[#{intensity_num};#{fgbg_num}#{color_num}m#{str}\e[0m"
|
27
|
-
end
|
28
|
-
|
29
|
-
def fg *args
|
30
|
-
col :fg, *args
|
31
|
-
end
|
32
|
-
|
33
|
-
def default_palette
|
34
|
-
@@default_palette ||= {
|
35
|
-
'FOCUS' => -> msg { bg(:blue, :normal, fg(:white, :bright, msg)) },
|
36
|
-
'ANY' => -> msg { bg(:cyan, :normal, fg(:white, :bright, msg)) },
|
37
|
-
'FATAL' => -> msg { bg(:red, :bright, fg(:white, :bright, msg)) },
|
38
|
-
'ERROR' => -> msg { fg(:red, :bright, msg) },
|
39
|
-
'WARN' => -> msg { fg(:yellow, :normal, msg) },
|
40
|
-
'INFO' => -> msg { fg(:green, :normal, msg) },
|
41
|
-
'DEBUG' => -> msg { fg(:blue, :normal, msg) },
|
42
|
-
'TRACE' => -> msg { fg(:magenta, :bright, msg) },
|
43
|
-
'DATA' => -> msg { fg(:cyan, :normal, msg) }
|
44
|
-
}
|
45
|
-
end
|
46
|
-
|
47
|
-
def palette
|
48
|
-
@palette || default_palette
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|