RTALogger 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.idea/.gitignore +2 -0
  3. data/.idea/.rakeTasks +7 -0
  4. data/.idea/RTALogger.iml +29 -0
  5. data/.idea/misc.xml +7 -0
  6. data/.idea/modules.xml +8 -0
  7. data/.idea/vcs.xml +6 -0
  8. data/Gemfile +1 -0
  9. data/Gemfile.lock +21 -23
  10. data/README.md +326 -4
  11. data/RTALogger.gemspec +2 -1
  12. data/lib/RTALogger.rb +2 -4
  13. data/lib/RTALogger/version.rb +1 -1
  14. data/lib/log_factory_log_formatter.rb +35 -0
  15. data/lib/{factory/origin/log_factory_manager.rb → log_factory_manager.rb} +1 -3
  16. data/lib/{factory/origin/log_factory_propagator.rb → log_factory_propagator.rb} +1 -2
  17. data/lib/{factory/origin/log_factory_record.rb → log_factory_record.rb} +1 -1
  18. data/lib/log_factory_repository.rb +37 -0
  19. data/lib/log_factory_topic.rb +12 -0
  20. data/lib/log_formatter.rb +11 -1
  21. data/lib/log_formatter_json.rb +4 -2
  22. data/lib/log_formatter_text.rb +8 -6
  23. data/lib/log_manager.rb +126 -40
  24. data/lib/log_propagator.rb +44 -45
  25. data/lib/log_record.rb +27 -28
  26. data/lib/log_repository.rb +26 -4
  27. data/lib/log_repository_console.rb +8 -3
  28. data/lib/log_repository_file.rb +24 -6
  29. data/lib/log_repository_fluent.rb +49 -0
  30. data/lib/log_repository_udp.rb +14 -7
  31. data/lib/log_topic.rb +26 -18
  32. data/lib/rta_logger_config.json +59 -0
  33. data/lib/sample.rb +48 -0
  34. data/lib/severity_level.rb +60 -0
  35. metadata +34 -20
  36. data/lib/factory/origin/log_factory_file_logger.rb +0 -16
  37. data/lib/factory/origin/log_factory_log_formatter.rb +0 -11
  38. data/lib/factory/origin/log_factory_repository.rb +0 -44
  39. data/lib/factory/origin/log_factory_topic.rb +0 -12
  40. data/lib/log_severity.rb +0 -17
  41. data/lib/log_test.rb +0 -41
  42. 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: 0.1.0
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-04 00:00:00.000000000 Z
11
+ date: 2020-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: fluentd
14
+ name: fluent-logger
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.11'
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: '1.11'
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: 1.11.4
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/factory/origin/log_factory_file_logger.rb
58
- - lib/factory/origin/log_factory_log_formatter.rb
59
- - lib/factory/origin/log_factory_manager.rb
60
- - lib/factory/origin/log_factory_propagator.rb
61
- - lib/factory/origin/log_factory_record.rb
62
- - lib/factory/origin/log_factory_repository.rb
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,11 +0,0 @@
1
- require_relative '../../log_formatter_text'
2
- require_relative '../../log_formatter_json'
3
-
4
- module RTALogger
5
- module LogFactory
6
- def self.log_formatter_default
7
- # RTALogger::LogFormatterJSON.new
8
- RTALogger::LogFormatterText.new
9
- end
10
- end
11
- 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
@@ -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
@@ -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
-
@@ -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
-