coralogix_logger 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/coralogix_logger.rb +90 -0
- data/lib/manager.rb +24 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b98eed406daf139ae01da99ada18bca27894806
|
4
|
+
data.tar.gz: 582c53c819ef189baf3e868f81f28c040e430aba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d181105e0d9df98cb669ed92dbd9a26dcbbeceb1504b698cdb3cabee2b80e15b25d1b64febc77277a15eb3a07981474f0c46208aa7ad67c9facdfd45e845b7ff
|
7
|
+
data.tar.gz: f1ba2926d95161c93194597234842d54eb10b1b37ece597c086163a92720e15c2623b321fd756fc0fe14dfd2093121b5e15207605994a75367945e6aaa2ec0d6
|
data/lib/coralogix_logger.rb
CHANGED
@@ -6,15 +6,29 @@ require_relative 'constants'
|
|
6
6
|
module Coralogix
|
7
7
|
|
8
8
|
class CoralogixLogger
|
9
|
+
|
10
|
+
attr_accessor :use_source_file
|
11
|
+
|
9
12
|
# Set 'new' method to be a private method.
|
10
13
|
# This way it won't be possible to create a new intance of this class from outside.
|
11
14
|
private_class_method :new
|
12
15
|
|
16
|
+
|
13
17
|
# Constructor.
|
14
18
|
#
|
15
19
|
# @param name - logger name.
|
16
20
|
def initialize name
|
17
21
|
@category = name
|
22
|
+
@level=0
|
23
|
+
@use_source_file = true
|
24
|
+
end
|
25
|
+
|
26
|
+
# Logger interface:
|
27
|
+
# Set Logger level
|
28
|
+
#
|
29
|
+
# @param name - level
|
30
|
+
def level= level
|
31
|
+
@level=level
|
18
32
|
end
|
19
33
|
|
20
34
|
# A getter for debug_mode.
|
@@ -88,6 +102,82 @@ module Coralogix
|
|
88
102
|
LoggerManager.add_logline message, SEVERITIES["#{__method__}".to_sym], category, :className => className, :methodName => methodName, :threadId => threadId
|
89
103
|
end
|
90
104
|
end
|
105
|
+
|
106
|
+
# Logger interface:
|
107
|
+
# Send log message if the given severity is high enough.
|
108
|
+
# @param severity - Severity. Constants are defined in Logger namespace: +DEBUG+, +INFO+, +WARN+, +ERROR+, +FATAL+, or +UNKNOWN
|
109
|
+
# @param message - The log message. A String or Exception.
|
110
|
+
# @param progname - Program name string. Can be omitted. Treated as a message if no +message+ and +block+ are given.
|
111
|
+
# @param block - Can be omitted. Called to get a message string if +message+ is nil.
|
112
|
+
# @return [boolean] When the given severity is not high enough (for this particular logger), log no message, and return true.
|
113
|
+
def add(severity, message = nil, progname = nil, &block)
|
114
|
+
begin
|
115
|
+
severity ||= DEBUG
|
116
|
+
if severity < @level
|
117
|
+
return true
|
118
|
+
end
|
119
|
+
progname ||= @category
|
120
|
+
if message.nil?
|
121
|
+
if block_given?
|
122
|
+
message = yield
|
123
|
+
else
|
124
|
+
message = progname
|
125
|
+
progname = @category
|
126
|
+
end
|
127
|
+
end
|
128
|
+
className = get_source_file if @use_source_file
|
129
|
+
rescue Exception => e
|
130
|
+
DebugLogger.error e.message
|
131
|
+
DebugLogger.error e.backtrace.inspect
|
132
|
+
end
|
133
|
+
|
134
|
+
# Map Ruby Severity to Coralogix severity:
|
135
|
+
# Ruby Coralogix
|
136
|
+
# DEBUG 0 1
|
137
|
+
# INFO 1 3
|
138
|
+
# WARN 2 4
|
139
|
+
# ERROR 3 5
|
140
|
+
# FATAL 4 6
|
141
|
+
LoggerManager.add_logline message, severity == 0 ? Severity::DEBUG : severity + 2, progname, :className => className
|
142
|
+
end
|
143
|
+
|
144
|
+
# Logger interface:
|
145
|
+
# Dump given message to the log device without any formatting.
|
146
|
+
def << x
|
147
|
+
self.add 0, nil, x
|
148
|
+
end
|
149
|
+
|
150
|
+
# Logger interface:
|
151
|
+
# Set logger program name. This will be used as the category.
|
152
|
+
def progname= name
|
153
|
+
@category = name
|
154
|
+
end
|
155
|
+
|
156
|
+
# Logger interface:
|
157
|
+
# Set logger formatter
|
158
|
+
def formatter= formatter
|
159
|
+
# Nothing to do here as we always use Coralogix format
|
160
|
+
end
|
161
|
+
|
162
|
+
# Logger interface:
|
163
|
+
# Close coralogix logger. Not implemented
|
164
|
+
def close
|
165
|
+
# Not implemented
|
166
|
+
end
|
167
|
+
|
168
|
+
# Return the file name where the call to the logger was made. This will be used as the class name
|
169
|
+
def get_source_file
|
170
|
+
begin
|
171
|
+
# 0 1 2 3
|
172
|
+
#logger.info(Rails logger) -> Logger.broadcast(Rails Logger)-> add(This class) -> get_source_file(This method)
|
173
|
+
file_location_path = caller_locations(4..4)[0].path
|
174
|
+
File.basename(file_location_path, File.extname(file_location_path))
|
175
|
+
rescue Exception => e
|
176
|
+
DebugLogger.error e.message
|
177
|
+
DebugLogger.error e.backtrace.inspect
|
178
|
+
return nil
|
179
|
+
end
|
180
|
+
end
|
91
181
|
end
|
92
182
|
|
93
183
|
end
|
data/lib/manager.rb
CHANGED
@@ -34,7 +34,7 @@ module Coralogix
|
|
34
34
|
@bulk_template = args.merge({:computerName => `hostname`.strip})
|
35
35
|
DebugLogger.info "Successfully configured Coralogix logger."
|
36
36
|
@configured = true
|
37
|
-
self.update_time_delta_interval
|
37
|
+
#self.update_time_delta_interval
|
38
38
|
self.add_logline "The Application Name #{@bulk_template[:applicationName]} and Subsystem Name #{@bulk_template[:subsystemName]} from the Ruby SDK, version #{self.version?} has started to send data.", Severity::INFO, CORALOGIX_CATEGORY
|
39
39
|
rescue Exception => e
|
40
40
|
DebugLogger.error e.message
|
@@ -69,10 +69,8 @@ module Coralogix
|
|
69
69
|
begin
|
70
70
|
@mutex.synchronize do
|
71
71
|
if @buffer_size < MAX_LOG_BUFFER_SIZE
|
72
|
-
|
73
72
|
#Validate message
|
74
|
-
message = (message.nil? || message.to_s.strip.empty?) ? "EMPTY_STRING" : message
|
75
|
-
|
73
|
+
message = (message.nil? || message.to_s.strip.empty?) ? "EMPTY_STRING" : self.msg2str(message)
|
76
74
|
#Validate severity
|
77
75
|
severity = (severity.nil? || severity.to_s < Severity::DEBUG.to_s || severity.to_s > Severity::CRITICAL.to_s) ? Severity::DEBUG : severity
|
78
76
|
|
@@ -94,6 +92,28 @@ module Coralogix
|
|
94
92
|
return true
|
95
93
|
end
|
96
94
|
|
95
|
+
# Convert log message to string
|
96
|
+
# @param msg - log message to convert
|
97
|
+
#
|
98
|
+
# @return [String] return log message as string
|
99
|
+
def self.msg2str(msg)
|
100
|
+
begin
|
101
|
+
case msg
|
102
|
+
when ::String
|
103
|
+
msg
|
104
|
+
when ::Exception
|
105
|
+
"#{ msg.message } (#{ msg.class })\n" <<
|
106
|
+
(msg.backtrace || []).join("\n")
|
107
|
+
else
|
108
|
+
msg.inspect
|
109
|
+
end
|
110
|
+
rescue Exception => e
|
111
|
+
DebugLogger.error e.message
|
112
|
+
DebugLogger.error e.backtrace.inspect
|
113
|
+
return msg
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
97
117
|
# Send bulk from the buffer
|
98
118
|
def self.send_bulk
|
99
119
|
begin
|