RTALogger 0.1.4 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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