RTALogger 1.0.0 → 1.1.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/Gemfile.lock +1 -1
- data/lib/RTALogger/version.rb +1 -1
- data/lib/log_factory_log_formatter.rb +3 -2
- data/lib/log_factory_repository.rb +1 -1
- data/lib/log_formatter_base.rb +33 -0
- data/lib/log_formatter_json.rb +2 -2
- data/lib/log_formatter_text.rb +2 -2
- data/lib/log_manager.rb +4 -3
- data/lib/log_propagator.rb +15 -13
- data/lib/log_repository.rb +18 -0
- data/lib/log_repository_console.rb +0 -2
- data/lib/log_repository_file.rb +13 -2
- data/lib/{log_repository_fluent.rb → log_repository_fluentd.rb} +11 -2
- data/lib/rta_logger_config.json +1 -1
- data/lib/sample.rb +0 -1
- data/lib/string.rb +9 -0
- metadata +5 -4
- data/lib/log_formatter.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c27d68d46d9d0ff75577b50a1b29983ce9012bc1d3dc86778b197154596ab2c5
|
4
|
+
data.tar.gz: 53ebb2215c5a2e4733de28b9178c9d4db5713aa87483309407be0de1763b36f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e731b3cd50b9c13b017679a34e9136b743055e50892017a73890d5f74031f6d88fc437b8a26dee5abe8207fcc9c1616c83ab998f77ee216701c2fd0d98220cc2
|
7
|
+
data.tar.gz: 871fd3047f195f7076e08eeec631bc3f0143ea4c4f8ae483bf054e244e5e6f75541f775f0b4f973e8127a592cace225922357fb7f9167f00623f3845bd0573b7
|
data/Gemfile.lock
CHANGED
data/lib/RTALogger/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'log_formatter_base'
|
2
|
+
|
1
3
|
module RTALogger
|
2
4
|
# Log factory to get new instance of log formatter
|
3
5
|
module LogFactory
|
@@ -8,7 +10,6 @@ module RTALogger
|
|
8
10
|
def self.create_formatter(type, config_json = '')
|
9
11
|
lib_file = @log_formatters[type.to_sym]
|
10
12
|
raise "unregistered formatter class: #{type.to_s}" if lib_file.nil? || lib_file.empty?
|
11
|
-
|
12
13
|
begin
|
13
14
|
load lib_file
|
14
15
|
rescue
|
@@ -30,6 +31,6 @@ module RTALogger
|
|
30
31
|
end
|
31
32
|
|
32
33
|
@log_formatters = {:text => 'log_formatter_text.rb',
|
33
|
-
|
34
|
+
:json => 'log_formatter_json.rb'}
|
34
35
|
end
|
35
36
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'jbuilder'
|
2
|
+
require_relative 'string'
|
3
|
+
|
4
|
+
module RTALogger
|
5
|
+
class LogFormatterBase
|
6
|
+
def initialize
|
7
|
+
@delimiter = '|'
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_accessor :delimiter
|
11
|
+
|
12
|
+
def load_config(config_json)
|
13
|
+
@delimiter = config_json['delimiter'].nil? ? true : config_json['delimiter']
|
14
|
+
end
|
15
|
+
|
16
|
+
def format(log_record)
|
17
|
+
log_record.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_builder
|
21
|
+
jb = Jbuilder.new do |json|
|
22
|
+
json.type self.class.to_s.split('::').last.underscore.sub('log_formatter_', '')
|
23
|
+
json.delimiter delimiter
|
24
|
+
end
|
25
|
+
|
26
|
+
jb
|
27
|
+
end
|
28
|
+
|
29
|
+
def reveal_config
|
30
|
+
to_builder.target!
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/log_formatter_json.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'jbuilder'
|
2
|
-
require_relative '
|
2
|
+
require_relative 'log_formatter_base'
|
3
3
|
|
4
4
|
module RTALogger
|
5
5
|
# json formatter which receive log_record and
|
6
6
|
# returns it's data as json string
|
7
|
-
class LogFormatterJson <
|
7
|
+
class LogFormatterJson < LogFormatterBase
|
8
8
|
def format(log_record)
|
9
9
|
return '' unless log_record
|
10
10
|
|
data/lib/log_formatter_text.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'log_formatter_base'
|
2
2
|
|
3
3
|
module RTALogger
|
4
4
|
# text formatter which receive log_record and
|
5
5
|
# returns it's data as delimited text string
|
6
|
-
class LogFormatterText <
|
6
|
+
class LogFormatterText < LogFormatterBase
|
7
7
|
def format(log_record)
|
8
8
|
return '' unless log_record
|
9
9
|
|
data/lib/log_manager.rb
CHANGED
@@ -58,7 +58,6 @@ module RTALogger
|
|
58
58
|
@config_file_name = file_name if config_json
|
59
59
|
apply_config(config_json)
|
60
60
|
rescue StandardError => e
|
61
|
-
puts e.message
|
62
61
|
@propagator.drop_all_repositories
|
63
62
|
@propagator.add_log_repository(LogFactory.create_repository(:console))
|
64
63
|
end
|
@@ -67,7 +66,6 @@ module RTALogger
|
|
67
66
|
config_json = load_config_from_json_string(config_string, manager_name)
|
68
67
|
apply_config(config_json)
|
69
68
|
rescue StandardError => e
|
70
|
-
puts e.message
|
71
69
|
@propagator.drop_all_repositories
|
72
70
|
@propagator.add_log_repository(LogFactory.create_repository(:console))
|
73
71
|
end
|
@@ -113,6 +111,9 @@ module RTALogger
|
|
113
111
|
json.buffer_size buffer_size
|
114
112
|
json.flush_size flush_size
|
115
113
|
json.flush_wait_time flush_wait_time
|
114
|
+
json.repositories do
|
115
|
+
json.array! @propagator.repositories.collect { |repository| repository.to_builder.attributes! }
|
116
|
+
end
|
116
117
|
json.topics do
|
117
118
|
json.array! topics.keys.collect { |topic_key| @topics[topic_key].to_builder.attributes! }
|
118
119
|
end
|
@@ -169,7 +170,7 @@ module RTALogger
|
|
169
170
|
end
|
170
171
|
|
171
172
|
def apply_config_repos(config_json)
|
172
|
-
config_json['
|
173
|
+
config_json['repositories']&.each { |item| @propagator.load_log_repository(item) }
|
173
174
|
end
|
174
175
|
|
175
176
|
def apply_config_topics(config_json)
|
data/lib/log_propagator.rb
CHANGED
@@ -5,17 +5,19 @@ module RTALogger
|
|
5
5
|
class LogPropagator
|
6
6
|
def initialize
|
7
7
|
@semaphore = Mutex.new
|
8
|
-
@
|
9
|
-
@
|
8
|
+
@records = []
|
9
|
+
@repositories = []
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
attr_reader :repositories
|
13
|
+
|
14
|
+
def add_log(record)
|
15
|
+
@semaphore.synchronize { @records.push(record.dup) }
|
14
16
|
end
|
15
17
|
|
16
|
-
def add_log_repository(
|
17
|
-
return unless
|
18
|
-
@
|
18
|
+
def add_log_repository(repository)
|
19
|
+
return unless repository.is_a? RTALogger::LogRepository
|
20
|
+
@repositories.push(repository) unless @repositories.include?(repository)
|
19
21
|
end
|
20
22
|
|
21
23
|
def load_log_repository(config_json)
|
@@ -24,20 +26,20 @@ module RTALogger
|
|
24
26
|
enable = config_json['enable'].nil? ? true : config_json['enable']
|
25
27
|
return unless enable
|
26
28
|
|
27
|
-
|
28
|
-
add_log_repository(
|
29
|
+
repository = ::RTALogger::LogFactory.create_repository(type, config_json)
|
30
|
+
add_log_repository(repository)
|
29
31
|
end
|
30
32
|
|
31
33
|
def drop_all_repositories
|
32
|
-
@semaphore.synchronize { @
|
34
|
+
@semaphore.synchronize { @repositories.clear }
|
33
35
|
end
|
34
36
|
|
35
37
|
def propagate
|
36
38
|
@semaphore.synchronize do
|
37
|
-
@
|
38
|
-
|
39
|
+
@repositories.each do |repository|
|
40
|
+
repository.add_log_records(@records)
|
39
41
|
end
|
40
|
-
@
|
42
|
+
@records.clear
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
data/lib/log_repository.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'string'
|
2
|
+
|
1
3
|
module RTALogger
|
2
4
|
# base log repository class
|
3
5
|
class LogRepository
|
@@ -5,6 +7,7 @@ module RTALogger
|
|
5
7
|
@semaphore = Mutex.new
|
6
8
|
@log_records = []
|
7
9
|
@enable = true
|
10
|
+
@formatter = RTALogger::LogFactory.log_formatter_default
|
8
11
|
end
|
9
12
|
|
10
13
|
# @@sub_classes = {}
|
@@ -23,6 +26,7 @@ module RTALogger
|
|
23
26
|
# end
|
24
27
|
|
25
28
|
attr_accessor :enable
|
29
|
+
attr_accessor :formatter
|
26
30
|
|
27
31
|
def add_log_records(items)
|
28
32
|
return 0 unless @enable
|
@@ -41,6 +45,20 @@ module RTALogger
|
|
41
45
|
end
|
42
46
|
end
|
43
47
|
|
48
|
+
def to_builder
|
49
|
+
jb = Jbuilder.new do |json|
|
50
|
+
json.type self.class.to_s.split('::').last.underscore.sub('log_repository_', '')
|
51
|
+
json.enable enable
|
52
|
+
json.formatter @formatter.to_builder.attributes!
|
53
|
+
end
|
54
|
+
|
55
|
+
jb
|
56
|
+
end
|
57
|
+
|
58
|
+
def reveal_config
|
59
|
+
to_builder.target!
|
60
|
+
end
|
61
|
+
|
44
62
|
protected
|
45
63
|
|
46
64
|
def flush_and_clear
|
data/lib/log_repository_file.rb
CHANGED
@@ -7,8 +7,10 @@ module RTALogger
|
|
7
7
|
class LogRepositoryFile < LogRepository
|
8
8
|
def initialize(file_path = 'log.txt', period = 'daily', shift_size = 1_048_576)
|
9
9
|
super()
|
10
|
-
@
|
11
|
-
@
|
10
|
+
@file_path = file_path
|
11
|
+
@period = period
|
12
|
+
@shift_size = shift_size
|
13
|
+
@file_logger = create_ruby_logger(@file_path, @period, @shift_size)
|
12
14
|
end
|
13
15
|
|
14
16
|
def load_config(config_json)
|
@@ -20,6 +22,15 @@ module RTALogger
|
|
20
22
|
@file_logger = create_ruby_logger(file_path, period, shift_size)
|
21
23
|
end
|
22
24
|
|
25
|
+
def to_builder
|
26
|
+
json = super
|
27
|
+
json.enable enable
|
28
|
+
json.file_path @file_path
|
29
|
+
json.period @period
|
30
|
+
json.shift_size @shift_size
|
31
|
+
|
32
|
+
json
|
33
|
+
end
|
23
34
|
# register :file
|
24
35
|
|
25
36
|
protected
|
@@ -2,10 +2,11 @@ require 'fluent-logger'
|
|
2
2
|
require_relative 'log_repository'
|
3
3
|
|
4
4
|
module RTALogger
|
5
|
-
class
|
5
|
+
class LogRepositoryFluentd < LogRepository
|
6
6
|
def initialize(host = 'localhost', port = 24224, tls_options = nil)
|
7
7
|
super()
|
8
|
-
@
|
8
|
+
@host = host
|
9
|
+
@port = port
|
9
10
|
@fluent_logger = create_fluentd_logger(host, port, tls_options)
|
10
11
|
end
|
11
12
|
|
@@ -19,6 +20,14 @@ module RTALogger
|
|
19
20
|
@fluent_logger = create_fluentd_logger(host, port, tls_options)
|
20
21
|
end
|
21
22
|
|
23
|
+
def to_builder
|
24
|
+
json = super
|
25
|
+
json.enable enable
|
26
|
+
json.host @host
|
27
|
+
json.port @port
|
28
|
+
|
29
|
+
json
|
30
|
+
end
|
22
31
|
# register :fluentd
|
23
32
|
|
24
33
|
protected
|
data/lib/rta_logger_config.json
CHANGED
data/lib/sample.rb
CHANGED
data/lib/string.rb
ADDED
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: 1.
|
4
|
+
version: 1.1.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-
|
11
|
+
date: 2020-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluent-logger
|
@@ -74,7 +74,7 @@ files:
|
|
74
74
|
- lib/log_factory_record.rb
|
75
75
|
- lib/log_factory_repository.rb
|
76
76
|
- lib/log_factory_topic.rb
|
77
|
-
- lib/
|
77
|
+
- lib/log_formatter_base.rb
|
78
78
|
- lib/log_formatter_json.rb
|
79
79
|
- lib/log_formatter_text.rb
|
80
80
|
- lib/log_manager.rb
|
@@ -83,12 +83,13 @@ files:
|
|
83
83
|
- lib/log_repository.rb
|
84
84
|
- lib/log_repository_console.rb
|
85
85
|
- lib/log_repository_file.rb
|
86
|
-
- lib/
|
86
|
+
- lib/log_repository_fluentd.rb
|
87
87
|
- lib/log_repository_udp.rb
|
88
88
|
- lib/log_topic.rb
|
89
89
|
- lib/rta_logger_config.json
|
90
90
|
- lib/sample.rb
|
91
91
|
- lib/severity_level.rb
|
92
|
+
- lib/string.rb
|
92
93
|
homepage: https://github.com/BBahrainy/RTALogger.git
|
93
94
|
licenses:
|
94
95
|
- MIT
|
data/lib/log_formatter.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# Log Formatter base class
|
2
|
-
module RTALogger
|
3
|
-
class LogFormatter
|
4
|
-
def initialize
|
5
|
-
@delimiter = '|'
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_accessor :delimiter
|
9
|
-
|
10
|
-
def load_config(config_json)
|
11
|
-
@delimiter = config_json['delimiter'].nil? ? true : config_json['delimiter']
|
12
|
-
end
|
13
|
-
|
14
|
-
def format(log_record)
|
15
|
-
log_record.to_s
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|