RTALogger 0.1.4 → 2.0.1

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.
@@ -4,6 +4,8 @@ require_relative 'log_factory_repository'
4
4
  controller_name = 'test_controller'
5
5
  userID = 5
6
6
 
7
+ # RTALogger::LogFactory.register_log_repository :console, 'log_repository_console.rb'
8
+
7
9
  # create log manager instance
8
10
  # this could be a global variable declared in application level
9
11
  log_manager = RTALogger::LogFactory.log_manager_instance
@@ -21,8 +23,12 @@ log_manager.config_use_json_file('rta_logger_config.json')
21
23
  # use this api to get a new log topic instance
22
24
  # this api could be called in entry point of each service or class initialize method
23
25
  topic = log_manager.add_topic(controller_name)
26
+ test_topic = log_manager.add_topic('test')
27
+ # test_topic.severity_level = ::RTALogger::SeverityLevel::FATAL
28
+ # test_topic.enable = false
24
29
 
25
30
  # add log information to log topic
31
+ topic.trace(userID, 'Controller Name=', controller_name, 'trace')
26
32
  topic.debug(userID, 'Controller Name=', controller_name, 'debug')
27
33
  topic.info(userID, 'Controller Name=', controller_name, 'information')
28
34
  topic.warning(userID, 'Controller Name=', controller_name, 'warning')
@@ -30,8 +36,13 @@ topic.error(userID, 'Controller Name=', controller_name, 'error')
30
36
  topic.fatal(userID, 'Controller Name=', controller_name, 'fatal')
31
37
  topic.unknown(userID, 'Controller Name=', controller_name, 'unknown')
32
38
 
39
+ test_topic.error(userID, 'test_topic', 'error')
40
+ test_topic.fatal(userID, 'test_topic', 'fatal')
41
+
42
+ puts log_manager.reveal_config
43
+
33
44
  # update specific topic log level if necessary
34
- # log_manager.update_topic_level(controller_name, RTALogger::LogSeverity::INFO)
45
+ # log_manager.update_topic_level(controller_name, RTALogger::SeverityLevel::INFO)
35
46
 
36
47
  # update all topics log level if necessary
37
- # log_manager.update_all_topics_log_level(RTALogger::LogSeverity::INFO)
48
+ # log_manager.update_all_topics_severity_level(RTALogger::SeverityLevel::INFO)
@@ -0,0 +1,68 @@
1
+ module RTALogger
2
+ # Logging severity.
3
+ module SeverityLevel
4
+ # all information that helps us to trace the processing of an incoming request through our application
5
+ TRACE = 0
6
+ # Low-level information, mostly for developers.
7
+ DEBUG = 1
8
+ # Generic (useful) information about system operation.
9
+ INFO = 2
10
+ # A warning.
11
+ WARN = 3
12
+ # A handleable error condition.
13
+ ERROR = 4
14
+ # An un-handleable error that results in a program crash.
15
+ FATAL = 5
16
+ # An unknown message that should always be logged.
17
+ UNKNOWN = 6
18
+
19
+
20
+ def parse_severity_level_to_i(severity_level)
21
+ return severity_level if severity_level.is_a? ::Integer
22
+
23
+ case severity_level.upcase
24
+ when 'TRACE'
25
+ 0
26
+ when 'DEBUG'
27
+ 1
28
+ when 'INFO'
29
+ 2
30
+ when 'INFORMATIONّٔ'
31
+ 2
32
+ when 'WARN'
33
+ 3
34
+ when 'WARNING'
35
+ 5
36
+ when 'ERROR'
37
+ 4
38
+ when 'FATAL'
39
+ 5
40
+ when 'UNKNOWN'
41
+ 6
42
+ else
43
+ 2
44
+ end
45
+ end
46
+
47
+ def parse_severity_level_to_s(severity_level)
48
+ return severity_level if severity_level.is_a? ::String
49
+
50
+ case severity_level.to_i
51
+ when 0
52
+ 'TRACE'
53
+ when 1
54
+ 'DEBUG'
55
+ when 2
56
+ 'INFO'
57
+ when 3
58
+ 'WARN'
59
+ when 4
60
+ 'ERROR'
61
+ when 5
62
+ 'FATAL'
63
+ when 6
64
+ 'UNKNOWN'
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,9 @@
1
+ class String
2
+ def underscore
3
+ self.gsub(/::/, '/').
4
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
5
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
6
+ tr("-", "_").
7
+ downcase
8
+ end
9
+ 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: 0.1.4
4
+ version: 2.0.1
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-16 00:00:00.000000000 Z
11
+ date: 2020-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluent-logger
@@ -68,14 +68,13 @@ files:
68
68
  - bin/setup
69
69
  - lib/RTALogger.rb
70
70
  - lib/RTALogger/version.rb
71
- - lib/log_factory_file_logger.rb
72
71
  - lib/log_factory_log_formatter.rb
73
72
  - lib/log_factory_manager.rb
74
73
  - lib/log_factory_propagator.rb
75
74
  - lib/log_factory_record.rb
76
75
  - lib/log_factory_repository.rb
77
76
  - lib/log_factory_topic.rb
78
- - lib/log_formatter.rb
77
+ - lib/log_formatter_base.rb
79
78
  - lib/log_formatter_json.rb
80
79
  - lib/log_formatter_text.rb
81
80
  - lib/log_manager.rb
@@ -84,12 +83,13 @@ files:
84
83
  - lib/log_repository.rb
85
84
  - lib/log_repository_console.rb
86
85
  - lib/log_repository_file.rb
87
- - lib/log_repository_fluent.rb
86
+ - lib/log_repository_fluentd.rb
88
87
  - lib/log_repository_udp.rb
89
- - lib/log_severity.rb
90
88
  - lib/log_topic.rb
91
89
  - lib/rta_logger_config.json
92
90
  - lib/sample.rb
91
+ - lib/severity_level.rb
92
+ - lib/string.rb
93
93
  homepage: https://github.com/BBahrainy/RTALogger.git
94
94
  licenses:
95
95
  - MIT
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module RTALogger
6
- # this module generates object instance
7
- module LogFactory
8
- def self.new_file_logger(file_path = 'log.txt', period = 'daily', shift_size = 1_048_576)
9
- @ruby_logger = Logger.new(file_path, period, shift_size)
10
- @ruby_logger.level = Logger::Severity::DEBUG
11
- @ruby_logger.formatter = proc do |_severity, _datetime, _progname, msg|
12
- "#{msg}\n"
13
- end
14
- @ruby_logger
15
- end
16
- end
17
- end
@@ -1,8 +0,0 @@
1
- module RTALogger
2
- # Log Formatter base class
3
- class LogFormatter
4
- def format(log_record)
5
- log_record.to_s
6
- end
7
- end
8
- end
@@ -1,32 +0,0 @@
1
- require 'fluent-logger'
2
- require_relative 'log_repository'
3
-
4
- module RTALogger
5
- class LogRepositoryFluent < LogRepository
6
- def initialize(host = 'localhost', port = 24224, tls_options = nil)
7
- super()
8
- @host = host
9
- @port = port
10
- @tls_options = tls_options
11
- @formatter = RTALogger::LogFactory.log_formatter_json
12
- if @tls_options
13
- @fluent_logger = ::Fluent::Logger::FluentLogger.new(nil, :host => @host, :port => @port, :use_nonblock => true, :wait_writeable => false)
14
- else
15
- @fluent_logger = ::Fluent::Logger::FluentLogger.new(nil, :host => @host, :port => @port, :tls_options => @tls_options, :use_nonblock => true, :wait_writeable => false)
16
- end
17
- end
18
-
19
- def flush_and_clear
20
- semaphore.synchronize do
21
- @log_records.each do |log_record|
22
- fluent_tag = log_record.app_name + '.' + log_record.topic_title
23
- log_json_string = @formatter.format(log_record)
24
- log_json = JSON.parse(log_json_string)
25
-
26
- @fluent_logger.post(fluent_tag, log_json)
27
- end
28
- end
29
- super
30
- end
31
- end
32
- 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 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
- end
17
- end