RTALogger 2.1.2 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 344cc6430343748963541c7f025549d8ee80007f8abc30fa6218b8924fe73755
4
- data.tar.gz: 4c84b47e1f0a6d9007c1d0df5dc210955e3a0c525851a2edd46be8732b4e8d57
3
+ metadata.gz: 6e3e0080b58239ca52e5c80dceab5dfacd7202d25dbef441695c8f3fef56ad70
4
+ data.tar.gz: 40f0c55f14e92a4207b932e6090c14db5b6177fbc10e0f5c642ceb65c2c5e2b3
5
5
  SHA512:
6
- metadata.gz: 0a8e5f960166d6dd6ffc5627d61eedcc4bd0a3e15dcbc9dc2bcc4d8d6da20810ddc05a302931001165e28eee7e6db1c4513cc352b8425091f8a1271ecd05cdd0
7
- data.tar.gz: 4c3a4cb3e2458afbceceabd517083565992ae034ca8f5ad9baddb580ab37919d422e7f9e670ae94a62aecbad3eab9e9bee768cab03e747b1e2510900c623c06d
6
+ metadata.gz: 50e947dbcfbbda443696f07bc804b982a7310407580d429011f1932cdb304707eb303346445edb98c4cd0f140ca8ba46a4d84f5752f9017db4c64e9871b3886c
7
+ data.tar.gz: d9414ec73afcede5e67987fe83de43afc3ce5312db5b7089358bd4c1162004fbdaab2dbe48c02e8191d82a9a64bf2c69f5501ced9288aec49fee42bfc7f71b24
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- RTALogger (2.1.2)
4
+ RTALogger (2.2.0)
5
5
  fluent-logger (~> 0.9)
6
6
  jbuilder (~> 2.10)
7
7
 
data/README.md CHANGED
@@ -104,7 +104,8 @@ To use log manager APIs, first step is to have a quick review on Log Data Struct
104
104
  "formatter":
105
105
  {
106
106
  "type": "text",
107
- "delimiter": "|"
107
+ "delimiter": "|",
108
+ "colorize": true
108
109
  },
109
110
  "filters":
110
111
  [
@@ -216,7 +217,8 @@ the result will be:
216
217
  "formatter":
217
218
  {
218
219
  "type": "text",
219
- "delimiter": "|"
220
+ "delimiter": "|",
221
+ "colorize": true
220
222
  },
221
223
  "filters":
222
224
  [
@@ -305,6 +307,8 @@ the result will be:
305
307
  - "foramtter" is the text, json or any custome defined types as LogRecord formatter
306
308
  - "type": ["text"/"json"] type of formatter
307
309
  - "delimiter": [any text delimiter you need.(as an instance pipe line "|")]
310
+ - "colorize": [true/false] default value of this attribute is false.
311
+ if you need to colorize your out put format on standard output set this attribute to true.
308
312
  if formatter not defined then the json formatter will be used
309
313
  2- file: Store log data in a file.
310
314
  - "type": "console"
@@ -348,6 +352,7 @@ the result will be:
348
352
  "enable": [true/false] this will enable or disable filtering opration of current filter.
349
353
  "default_regex": "valid regual expression" to compare with corresponding attribute.
350
354
  * It's possible to implement customize filter classes and integerate with RTALogger filter factory.
355
+ * In RTALogger version 2.2.0 colorize out put format is availabel.
351
356
  - topics: This is an optional item. When you need to customize a specific topic severity level or
352
357
  enable value, you can define the settings here.
353
358
  - title: The topic title to customize. (mandatoy).
@@ -1,3 +1,3 @@
1
1
  module RTALogger
2
- VERSION = '2.1.2'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -1,16 +1,22 @@
1
1
  require 'jbuilder'
2
2
  require_relative 'string'
3
+ require_relative 'severity_level'
3
4
 
4
5
  module RTALogger
5
6
  class LogFormatterBase
7
+ include SeverityLevel
8
+
6
9
  def initialize
7
10
  @delimiter = '|'
11
+ @colorize = false
8
12
  end
9
13
 
10
14
  attr_accessor :delimiter
15
+ attr_accessor :colorize
11
16
 
12
17
  def load_config(config_json)
13
18
  @delimiter = config_json['delimiter'].nil? ? true : config_json['delimiter']
19
+ @colorize = config_json['colorize'].nil? ? false : config_json['colorize']
14
20
  end
15
21
 
16
22
  def format(log_record)
@@ -20,7 +26,8 @@ module RTALogger
20
26
  def to_builder
21
27
  jb = Jbuilder.new do |json|
22
28
  json.type self.class.to_s.split('::').last.underscore.sub('log_formatter_', '')
23
- json.delimiter delimiter
29
+ json.delimiter @delimiter
30
+ json.colorize @colorize
24
31
  end
25
32
 
26
33
  jb
@@ -29,5 +36,39 @@ module RTALogger
29
36
  def reveal_config
30
37
  to_builder.target!
31
38
  end
39
+
40
+ def apply_run_time_config(config_json)
41
+ @delimiter = config_json['delimiter'] unless config_json['delimiter'].nil?
42
+ @colorize = config_json['colorize'] unless config_json['colorize'].nil?
43
+ end
44
+
45
+ protected
46
+
47
+ def severity_text(severity)
48
+ text = parse_severity_level_to_s(severity)
49
+ text = severity_colorized_text(severity, text) if @colorize
50
+ return text
51
+ end
52
+
53
+ def severity_colorized_text(severity, text)
54
+ case severity
55
+ when 0
56
+ text.trace_color
57
+ when 1
58
+ text.debug_color
59
+ when 2
60
+ text
61
+ when 3
62
+ text.warning_color
63
+ when 4
64
+ text.error_color
65
+ when 5
66
+ text.fatal_color
67
+ when 6
68
+ text.unknown_colorj
69
+ else
70
+ text
71
+ end
72
+ end
32
73
  end
33
74
  end
@@ -1,12 +1,11 @@
1
1
  require 'jbuilder'
2
2
  require_relative 'log_formatter_base'
3
- require_relative 'severity_level'
3
+ require_relative 'string'
4
4
 
5
5
  module RTALogger
6
6
  # json formatter which receive log_record and
7
7
  # returns it's data as json string
8
8
  class LogFormatterJson < LogFormatterBase
9
- include SeverityLevel
10
9
 
11
10
  def format(log_record)
12
11
  return '' unless log_record
@@ -20,7 +19,21 @@ module RTALogger
20
19
  json.message log_record.message.flatten.join(' ')
21
20
  end
22
21
 
23
- jb.target!
22
+ result = jb.target!
23
+ result = colorize_json(result) if @colorize
24
+
25
+ return result
26
+ end
27
+
28
+ protected
29
+
30
+ def colorize_json(json_text)
31
+ json_text.gsub(/"severity":"TRACE"/i, '"severity":"TRACE"'.trace_color)
32
+ .gsub(/"severity":"DEBUG"/i, '"severity":"DEBUG"'.debug_color)
33
+ .gsub(/"severity":"WARN"/i, '"severity":"WARN"'.warning_color)
34
+ .gsub(/"severity":"ERROR"/i, '"severity":"ERROR"'.error_color)
35
+ .gsub(/"severity":"FATAL"/i, '"severity":"FATAL"'.fatal_color)
36
+ .gsub(/"severity":"UNKNOWN"/i, '"severity":"UNKNOWN"'.unknown_color)
24
37
  end
25
38
  end
26
39
  end
@@ -1,12 +1,9 @@
1
1
  require_relative 'log_formatter_base'
2
- require_relative 'severity_level'
3
2
 
4
3
  module RTALogger
5
4
  # text formatter which receive log_record and
6
5
  # returns it's data as delimited text string
7
6
  class LogFormatterText < LogFormatterBase
8
- include SeverityLevel
9
-
10
7
  def format(log_record)
11
8
  return '' unless log_record
12
9
 
@@ -14,7 +11,7 @@ module RTALogger
14
11
  result << @delimiter << log_record.app_name
15
12
  result << @delimiter << log_record.topic_title
16
13
  result << @delimiter << log_record.context_id.to_s
17
- result << @delimiter << parse_severity_level_to_s(log_record.severity)
14
+ result << @delimiter << severity_text(log_record.severity)
18
15
  result << @delimiter << log_record.message.join(' ').gsub(delimiter, '$<$')
19
16
 
20
17
  result
@@ -86,6 +86,7 @@ module RTALogger
86
86
  def apply_run_time_config(config_json)
87
87
  return unless config_json
88
88
  @enable = config_json['enable'] unless config_json['enable'].nil?
89
+ @formatter.apply_run_time_config(config_json)
89
90
  apply_run_time_config_filters(config_json)
90
91
  end
91
92
 
@@ -36,6 +36,8 @@ module RTALogger
36
36
 
37
37
  def apply_run_time_config(config_json)
38
38
  super config_json
39
+
40
+ @formatter.colorize = false
39
41
  end
40
42
 
41
43
  protected
@@ -62,6 +62,8 @@ module RTALogger
62
62
  @port = config_json['port'] unless config_json['port'].nil?
63
63
  @tls_options = config_json['tls_options'] unless config_json['tls_options'].nil?
64
64
  @semaphore.synchronize { @fluent_logger = nil }
65
+
66
+ @formatter.colorize = false
65
67
  end
66
68
 
67
69
  protected
@@ -20,14 +20,15 @@
20
20
  "formatter":
21
21
  {
22
22
  "type": "text",
23
- "delimiter": "|"
23
+ "delimiter": "|",
24
+ "colorize": true
24
25
  },
25
26
  "filters":
26
27
  [
27
28
  {
28
29
  "type": "topic",
29
30
  "title": "topic_filter_1",
30
- "enable": true,
31
+ "enable": false,
31
32
  "default_regex" : "^test$"
32
33
  },
33
34
  {
@@ -1,5 +1,14 @@
1
1
  require_relative 'log_factory_manager'
2
2
  require_relative 'log_factory_repository'
3
+ # require_relative 'string'
4
+
5
+ # puts 'trace'.gray
6
+ # puts 'debug'.green
7
+ # puts 'info'
8
+ # puts 'warning'.brown
9
+ # puts 'error'.red
10
+ # puts 'fatal'.bg_red
11
+ # puts 'unknown'.bg_cyan
3
12
 
4
13
  controller_name = 'test_controller'
5
14
  userID = 5
@@ -1,9 +1,40 @@
1
1
  class String
2
2
  def underscore
3
3
  self.gsub(/::/, '/').
4
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
5
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
4
+ gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
5
+ gsub(/([a-z\d])([A-Z])/, '\1_\2').
6
6
  tr("-", "_").
7
7
  downcase
8
8
  end
9
+
10
+ def black; "\e[30m#{self}\e[0m" end
11
+ def red; "\e[31m#{self}\e[0m" end
12
+ def green; "\e[32m#{self}\e[0m" end
13
+ def brown; "\e[33m#{self}\e[0m" end
14
+ def blue; "\e[34m#{self}\e[0m" end
15
+ def magenta; "\e[35m#{self}\e[0m" end
16
+ def cyan; "\e[36m#{self}\e[0m" end
17
+ def gray; "\e[37m#{self}\e[0m" end
18
+
19
+ def bg_black; "\e[40m#{self}\e[0m" end
20
+ def bg_red; "\e[41m#{self}\e[0m" end
21
+ def bg_green; "\e[42m#{self}\e[0m" end
22
+ def bg_brown; "\e[43m#{self}\e[0m" end
23
+ def bg_blue; "\e[44m#{self}\e[0m" end
24
+ def bg_magenta; "\e[45m#{self}\e[0m" end
25
+ def bg_cyan; "\e[46m#{self}\e[0m" end
26
+ def bg_gray; "\e[47m#{self}\e[0m" end
27
+
28
+ def bold; "\e[1m#{self}\e[22m" end
29
+ def italic; "\e[3m#{self}\e[23m" end
30
+ def underline; "\e[4m#{self}\e[24m" end
31
+ def blink; "\e[5m#{self}\e[25m" end
32
+ def reverse_color; "\e[7m#{self}\e[27m" end
33
+
34
+ def trace_color; self.gray end
35
+ def debug_color; self.green end
36
+ def warning_color; self.brown end
37
+ def error_color; self.red end
38
+ def fatal_color; self.bg_red end
39
+ def unknown_color; self.bg_cyan end
9
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RTALogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Babak Bahreini, RTA Backend Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-28 00:00:00.000000000 Z
11
+ date: 2020-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluent-logger