RTALogger 0.1.0 → 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/.idea/.gitignore +2 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/RTALogger.iml +29 -0
- data/.idea/misc.xml +7 -0
- data/.idea/modules.xml +8 -0
- data/.idea/vcs.xml +6 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +21 -23
- data/README.md +326 -4
- data/RTALogger.gemspec +2 -1
- data/lib/RTALogger.rb +2 -4
- data/lib/RTALogger/version.rb +1 -1
- data/lib/log_factory_log_formatter.rb +35 -0
- data/lib/{factory/origin/log_factory_manager.rb → log_factory_manager.rb} +1 -3
- data/lib/{factory/origin/log_factory_propagator.rb → log_factory_propagator.rb} +1 -2
- data/lib/{factory/origin/log_factory_record.rb → log_factory_record.rb} +1 -1
- data/lib/log_factory_repository.rb +37 -0
- data/lib/log_factory_topic.rb +12 -0
- data/lib/log_formatter.rb +11 -1
- data/lib/log_formatter_json.rb +4 -2
- data/lib/log_formatter_text.rb +8 -6
- data/lib/log_manager.rb +126 -40
- data/lib/log_propagator.rb +44 -45
- data/lib/log_record.rb +27 -28
- data/lib/log_repository.rb +26 -4
- data/lib/log_repository_console.rb +8 -3
- data/lib/log_repository_file.rb +24 -6
- data/lib/log_repository_fluent.rb +49 -0
- data/lib/log_repository_udp.rb +14 -7
- data/lib/log_topic.rb +26 -18
- data/lib/rta_logger_config.json +59 -0
- data/lib/sample.rb +48 -0
- data/lib/severity_level.rb +60 -0
- metadata +34 -20
- data/lib/factory/origin/log_factory_file_logger.rb +0 -16
- data/lib/factory/origin/log_factory_log_formatter.rb +0 -11
- data/lib/factory/origin/log_factory_repository.rb +0 -44
- data/lib/factory/origin/log_factory_topic.rb +0 -12
- data/lib/log_severity.rb +0 -17
- data/lib/log_test.rb +0 -41
- data/lib/log_test_db.rb +0 -59
@@ -0,0 +1,60 @@
|
|
1
|
+
module RTALogger
|
2
|
+
# Logging severity.
|
3
|
+
module SeverityLevel
|
4
|
+
# Low-level information, mostly for developers.
|
5
|
+
DEBUG = 0
|
6
|
+
# Generic (useful) information about system operation.
|
7
|
+
INFO = 1
|
8
|
+
# A warning.
|
9
|
+
WARN = 2
|
10
|
+
# A handleable error condition.
|
11
|
+
ERROR = 3
|
12
|
+
# An un-handleable error that results in a program crash.
|
13
|
+
FATAL = 4
|
14
|
+
# An unknown message that should always be logged.
|
15
|
+
UNKNOWN = 5
|
16
|
+
|
17
|
+
|
18
|
+
def parse_severity_level_to_i(severity_level)
|
19
|
+
return severity_level if severity_level.is_a? ::Integer
|
20
|
+
|
21
|
+
case severity_level.upcase
|
22
|
+
when 'DEBUG'
|
23
|
+
0
|
24
|
+
when 'INFO'
|
25
|
+
1
|
26
|
+
when 'INFORMATIONّٔ'
|
27
|
+
1
|
28
|
+
when 'WARN'
|
29
|
+
2
|
30
|
+
when 'WARNING'
|
31
|
+
2
|
32
|
+
when 'ERROR'
|
33
|
+
3
|
34
|
+
when 'FATAL'
|
35
|
+
4
|
36
|
+
when 'UNKNOWN'
|
37
|
+
5
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def parse_severity_level_to_s(severity_level)
|
42
|
+
return severity_level if severity_level.is_a? ::String
|
43
|
+
|
44
|
+
case severity_level.to_i
|
45
|
+
when 0
|
46
|
+
'DEBUG'
|
47
|
+
when 1
|
48
|
+
'INFO'
|
49
|
+
when 2
|
50
|
+
'WARN'
|
51
|
+
when 3
|
52
|
+
'ERROR'
|
53
|
+
when 4
|
54
|
+
'FATAL'
|
55
|
+
when 5
|
56
|
+
'UNKNOWN'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RTALogger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.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-
|
11
|
+
date: 2020-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: fluent-logger
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.11.4
|
19
|
+
version: '0.9'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
|
26
|
+
version: '0.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jbuilder
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.10'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
31
39
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
40
|
+
version: '2.10'
|
33
41
|
description: RTA Log Manager has been designed and implemented to provide standard
|
34
42
|
logging API for developers.This prevents chaos in log data format. Also provide
|
35
43
|
multiple extendable log repositories including wrapping existing loggers, like 'Fluentd'
|
@@ -42,6 +50,12 @@ extensions: []
|
|
42
50
|
extra_rdoc_files: []
|
43
51
|
files:
|
44
52
|
- ".gitignore"
|
53
|
+
- ".idea/.gitignore"
|
54
|
+
- ".idea/.rakeTasks"
|
55
|
+
- ".idea/RTALogger.iml"
|
56
|
+
- ".idea/misc.xml"
|
57
|
+
- ".idea/modules.xml"
|
58
|
+
- ".idea/vcs.xml"
|
45
59
|
- ".rspec"
|
46
60
|
- ".travis.yml"
|
47
61
|
- Gemfile
|
@@ -54,13 +68,12 @@ files:
|
|
54
68
|
- bin/setup
|
55
69
|
- lib/RTALogger.rb
|
56
70
|
- lib/RTALogger/version.rb
|
57
|
-
- lib/
|
58
|
-
- lib/
|
59
|
-
- lib/
|
60
|
-
- lib/
|
61
|
-
- lib/
|
62
|
-
- lib/
|
63
|
-
- lib/factory/origin/log_factory_topic.rb
|
71
|
+
- lib/log_factory_log_formatter.rb
|
72
|
+
- lib/log_factory_manager.rb
|
73
|
+
- lib/log_factory_propagator.rb
|
74
|
+
- lib/log_factory_record.rb
|
75
|
+
- lib/log_factory_repository.rb
|
76
|
+
- lib/log_factory_topic.rb
|
64
77
|
- lib/log_formatter.rb
|
65
78
|
- lib/log_formatter_json.rb
|
66
79
|
- lib/log_formatter_text.rb
|
@@ -70,11 +83,12 @@ files:
|
|
70
83
|
- lib/log_repository.rb
|
71
84
|
- lib/log_repository_console.rb
|
72
85
|
- lib/log_repository_file.rb
|
86
|
+
- lib/log_repository_fluent.rb
|
73
87
|
- lib/log_repository_udp.rb
|
74
|
-
- lib/log_severity.rb
|
75
|
-
- lib/log_test.rb
|
76
|
-
- lib/log_test_db.rb
|
77
88
|
- lib/log_topic.rb
|
89
|
+
- lib/rta_logger_config.json
|
90
|
+
- lib/sample.rb
|
91
|
+
- lib/severity_level.rb
|
78
92
|
homepage: https://github.com/BBahrainy/RTALogger.git
|
79
93
|
licenses:
|
80
94
|
- MIT
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'logger'
|
3
|
-
|
4
|
-
module RTALogger
|
5
|
-
# this module generates object instance
|
6
|
-
module LogFactory
|
7
|
-
def self.new_file_logger(file_path = 'log.txt', period = 'daily', shift_size = 1048576)
|
8
|
-
@ruby_logger = Logger.new(file_path, period, shift_size)
|
9
|
-
@ruby_logger.level = Logger::Severity::DEBUG
|
10
|
-
@ruby_logger.formatter = proc do |severity, datetime, progname, msg|
|
11
|
-
"#{msg}\n"
|
12
|
-
end
|
13
|
-
@ruby_logger
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../../log_repository_console'
|
4
|
-
require_relative '../../log_repository_file'
|
5
|
-
require_relative '../../log_repository_udp'
|
6
|
-
#require_relative '../../log_repository_db'
|
7
|
-
|
8
|
-
module RTALogger
|
9
|
-
# this module generates object instance
|
10
|
-
module LogFactory
|
11
|
-
def self.new_log_repository_console
|
12
|
-
LogRepositoryConsole.new
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.new_log_repository_file(file_path = 'log.txt', period = 'daily', shift_size = 1048576)
|
16
|
-
LogRepositoryFile.new(file_path, period, shift_size)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.load_log_repository_file(config_json)
|
20
|
-
file_path = config_json['File_Path'].to_s
|
21
|
-
period = config_json['Roll_Period'].to_s
|
22
|
-
shift_size = config_json['Roll_Size'].nil? ? 1048576 : config_json['Roll_Size'].to_i
|
23
|
-
::RTALogger::LogFactory.new_log_repository_file(file_path, period, shift_size)
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.new_log_repository_udp(host = '127.0.0.1', port = 4913)
|
27
|
-
LogRepositoryUDP.new(host, port)
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.load_log_repository_udp(config_json)
|
31
|
-
host = config_json['Host'].to_s
|
32
|
-
port = config_json['Port'].nil? ? 4913 : config_json['Port'].to_i
|
33
|
-
::RTALogger::LogFactory.new_log_repository_udp(host, port)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.create_repository(type, config_json)
|
37
|
-
result = nil
|
38
|
-
result = new_log_repository_console if type.to_s.upcase.eql?('Console'.upcase)
|
39
|
-
result = load_log_repository_file(config_json) if type.to_s.upcase.eql?('File'.upcase)
|
40
|
-
result = load_log_repository_udp(config_json) if type.to_s.upcase.eql?('UDP'.upcase)
|
41
|
-
result
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../../log_topic'
|
4
|
-
|
5
|
-
module RTALogger
|
6
|
-
# this module generates object instance
|
7
|
-
module LogFactory
|
8
|
-
def self.new_log_topic(log_manager, topic_title, level = WARN)
|
9
|
-
LogTopic.new(log_manager, topic_title, level)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
data/lib/log_severity.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
module RTALogger
|
2
|
-
# Logging severity.
|
3
|
-
module LogSeverity
|
4
|
-
# Low-level information, mostly for developers.
|
5
|
-
DEBUG = 0
|
6
|
-
# Generic (useful) information about system operation.
|
7
|
-
INFO = 1
|
8
|
-
# A warning.
|
9
|
-
WARN = 2
|
10
|
-
# A handleable error condition.
|
11
|
-
ERROR = 3
|
12
|
-
# An unhandleable error that results in a program crash.
|
13
|
-
FATAL = 4
|
14
|
-
# An unknown message that should always be logged.
|
15
|
-
UNKNOWN = 5
|
16
|
-
end
|
17
|
-
end
|
data/lib/log_test.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
#require 'logger'
|
2
|
-
#require 'date'
|
3
|
-
require_relative 'factory/origin/log_factory_manager'
|
4
|
-
require_relative 'factory/origin/log_factory_repository'
|
5
|
-
require 'socket'
|
6
|
-
|
7
|
-
controller_name = 'test_controller'
|
8
|
-
userID = 5
|
9
|
-
|
10
|
-
log_manager = RTALogger::LogFactory.log_manager_instance
|
11
|
-
log_manager.app_name = 'myTestApp'
|
12
|
-
log_manager.config('../../../config/rta_logger_config.json')
|
13
|
-
#log_manager.propagator.add_log_repository(RTALogger::LogFactory.new_log_repository_console)
|
14
|
-
#log_manager.propagator.add_log_repository(RTALogger::LogFactory.new_log_repository_file('../../../log/log.txt'))
|
15
|
-
#log_manager.propagator.add_log_repository(RTALogger::LogFactory.new_log_repository_udp('127.0.0.1', 4913))
|
16
|
-
# log_manager.propagator.add_log_repository(RTALogger::LogFactory.new_log_repository_db)
|
17
|
-
|
18
|
-
topic = log_manager.add_topic(controller_name)
|
19
|
-
|
20
|
-
topic.info(userID, 'Controller Name=', controller_name, 'Called by client 1')
|
21
|
-
|
22
|
-
#logger.level = RTALogger::LogSeverity::INFO
|
23
|
-
#manager.update_topic_level(controller_name, RTALogger::LogSeverity::INFO)
|
24
|
-
|
25
|
-
log_manager.update_all_topics_log_level(RTALogger::LogSeverity::INFO)
|
26
|
-
|
27
|
-
topic.info(userID, 'Controller Name|', controller_name, 'Called by client |2|')
|
28
|
-
topic.error(userID, 'Controller Name=', controller_name, 'Called by client 3')
|
29
|
-
|
30
|
-
#sleep(10)
|
31
|
-
|
32
|
-
topic.info(userID, 'Controller Name=', controller_name, 'Called by client |4|')
|
33
|
-
topic.fatal(userID, 'Controller Name=', controller_name, 'Called by client 5')
|
34
|
-
topic.info(userID, 'Controller Name=', controller_name, 'Called by client 6')
|
35
|
-
|
36
|
-
#ruby_logger = Logger.new(STDOUT)
|
37
|
-
#ruby_logger.formatter = proc do |severity, datetime, progname, msg|
|
38
|
-
# "NICE: #{msg}\n"
|
39
|
-
#end
|
40
|
-
#ruby_logger.info('logged by ruby default logger')
|
41
|
-
|
data/lib/log_test_db.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
#require 'active_record'
|
2
|
-
#require 'pg'
|
3
|
-
# require 'active_record' # uncomment for not Rails environment
|
4
|
-
|
5
|
-
#ActiveRecord::Base.establish_connection(:adapter => "postgresql",
|
6
|
-
# :username => "postgre",
|
7
|
-
# :database => "rails_test_development")
|
8
|
-
|
9
|
-
require 'log_record'
|
10
|
-
|
11
|
-
module RTALogger
|
12
|
-
class LogFormatter
|
13
|
-
def initialize(log_record,
|
14
|
-
delimiter = '|',
|
15
|
-
time_format = '%Y-%m-%d %H:%M:%S.%3N')
|
16
|
-
@log_record = log_record
|
17
|
-
@delimiter = delimiter
|
18
|
-
@time_format = time_format
|
19
|
-
@format_chance = format_chance
|
20
|
-
end
|
21
|
-
|
22
|
-
attr_accessor :log_record
|
23
|
-
attr_accessor :delimiter
|
24
|
-
attr_accessor :time_format
|
25
|
-
|
26
|
-
def self.default_formatter(log_record)
|
27
|
-
LogFormatter.new(log_record)
|
28
|
-
end
|
29
|
-
|
30
|
-
def to_s
|
31
|
-
result = "#{occurred_at}#{@delimiter}#{@log_record.app_name}#{@delimiter}"
|
32
|
-
result << "#{@log_record.topic_title}#{@delimiter}#{@log_record.context_id}"
|
33
|
-
result << "#{@delimiter}#{@log_record.severity}#{@delimiter}#{log_message}"
|
34
|
-
|
35
|
-
if @format_chance
|
36
|
-
result unless @format_chance.call(occurred_at,
|
37
|
-
@log_record.app_name,
|
38
|
-
@log_record.topic_title,
|
39
|
-
@log_record.context_id,
|
40
|
-
@log_record.severity,
|
41
|
-
log_message)
|
42
|
-
end
|
43
|
-
else
|
44
|
-
result
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
protected
|
49
|
-
|
50
|
-
def log_message
|
51
|
-
@log_record.message.join.gsub(delimiter, '&dlm&')
|
52
|
-
end
|
53
|
-
|
54
|
-
def occurred_at
|
55
|
-
@log_record.occurred_at.strftime(time_format)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|