coralogix_logger 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +63 -0
- data/lib/constants.rb +53 -0
- data/lib/coralogix_logger.rb +90 -0
- data/lib/debug_logger.rb +56 -0
- data/lib/httpsender.rb +73 -0
- data/lib/manager.rb +128 -0
- metadata +48 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c6cd392cb48af14a79cb7cf58d901c7d4e1b976e
|
4
|
+
data.tar.gz: db4691005c5c7d2056c24ab830d2225ba46d0157
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 955a9052ecceab5a80b59630272fb04ad09920c3488783f9c7530ec940ad873461720fde9a35716eb83a92bc0b7b3af5c860593c0b776f88d48cdf47f5d0853b
|
7
|
+
data.tar.gz: 63d0f88dc5404058e9ed03d659f79ec0fd21b7589f6f1f4b4c6e4e5bb989b43e210e6c0d099f5f97eb5883a557e22d8ab29272e326a5156c945ff9363e9f2018
|
data/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
|
2
|
+
# Croalogix SDK - Ruby Implementation
|
3
|
+
This is an implementation of Coralogix Ruby SDK.
|
4
|
+
|
5
|
+
## INSTALL
|
6
|
+
gem install coralogix_logger
|
7
|
+
|
8
|
+
|
9
|
+
## GENERAL
|
10
|
+
|
11
|
+
**Private Key** - A unique ID which represents your company, this Id will be sent to your mail once you register to Coralogix.
|
12
|
+
|
13
|
+
**Application Name** - The name of your main application, for example, a company named “SuperData” would probably insert the “SuperData” string parameter or if they want to debug their test environment they might insert the “SuperData– Test”.
|
14
|
+
|
15
|
+
**SubSystem Name** - Your application probably has multiple subsystems, for example: Backend servers, Middleware, Frontend servers etc. in order to help you examine the data you need, inserting the subsystem parameter is vital.
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
## USAGE
|
20
|
+
|
21
|
+
You must provide the following four variables when creating a Coralogix logger instance.
|
22
|
+
|
23
|
+
**Private Key** - A unique ID which represents your company, this Id will be sent to your mail once you register to Coralogix.
|
24
|
+
|
25
|
+
**Application Name** - The name of your main application, for example, a company named “SuperData” would probably insert the “SuperData” string parameter or if they want to debug their test environment they might insert the “SuperData– Test”.
|
26
|
+
|
27
|
+
**SubSystem Name** - Your application probably has multiple subsystems, for example: Backend servers, Middleware, Frontend servers etc. in order to help you examine the data you need, inserting the subsystem parameter is vital.
|
28
|
+
|
29
|
+
##### Example: Coralogix SDK ####
|
30
|
+
require 'coralogix_logger'
|
31
|
+
|
32
|
+
PRIVATE_KEY = "11111111-1111-1111-1111-111111111111"
|
33
|
+
APP_NAME = "MyTestApp"
|
34
|
+
SUB_SYSTEM = "BL"
|
35
|
+
|
36
|
+
Coralogix::CoralogixLogger.configure(PRIVATE_KEY, APP_NAME, SUB_SYSTEM)
|
37
|
+
|
38
|
+
#The common practice is to get an instance of the logger in each class and setting the logger name to the class name.
|
39
|
+
logger = Coralogix::CoralogixLogger.get_logger("category1")
|
40
|
+
|
41
|
+
#Send "Hello World!" message with severity verbose.
|
42
|
+
logger.log(Coralogix::Severity::VERBOSE, "Hello World!")
|
43
|
+
|
44
|
+
#Additional options
|
45
|
+
#Severity, category and message parameters are mandatory. The rest of the parameters are optional.
|
46
|
+
#If category is not specified, logger name will be used instead
|
47
|
+
logger.log(Coralogix::Severity::DEBUG, "Hello World!", category: "my category")
|
48
|
+
logger.log(Coralogix::Severity::INFO, "Hello World!", category: "my category", className: "my class")
|
49
|
+
logger.log(Coralogix::Severity::WARNING, "Hello World!", category: "my category", className: "my class", methodName: "my method")
|
50
|
+
logger.log(Coralogix::Severity::ERROR, "Hello World!", category: "my category", className: "my class", methodName: "my method", threadId: "thread id")
|
51
|
+
logger.log(Coralogix::Severity::CRITICAL, "Hello World!", className: "my class", methodName: "my method", threadId: "thread id")
|
52
|
+
|
53
|
+
|
54
|
+
#Using severity methods
|
55
|
+
#Only message is mandatory. The rest of the parameters are optional.
|
56
|
+
logger.debug("Hello World!")
|
57
|
+
logger.verbose("Hello World!", className: "my class")
|
58
|
+
logger.info("Hello World!", className: "my class", methodName: "my method")
|
59
|
+
logger.warning("Hello World!", className: "my class", methodName: "my method", threadId="thread id")
|
60
|
+
logger.error("Hello World!", className: "my class", methodName: "my method", threadId="thread id")
|
61
|
+
logger.critical("Hello World!", category: "my category", className: "my class", methodName: "my method", threadId="thread id")
|
62
|
+
|
63
|
+
|
data/lib/constants.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
module Coralogix
|
2
|
+
|
3
|
+
#Maximum log buffer size
|
4
|
+
MAX_LOG_BUFFER_SIZE = 12582912 #12mb
|
5
|
+
|
6
|
+
#Maximum chunk size
|
7
|
+
MAX_LOG_CHUNK_SIZE = 1572864 #1.5 mb
|
8
|
+
|
9
|
+
#Bulk send interval in normal mode.
|
10
|
+
NORMAL_SEND_SPEED_INTERVAL = 500.0 / 1000
|
11
|
+
|
12
|
+
#Bulk send interval in fast mode.
|
13
|
+
FAST_SEND_SPEED_INTERVAL = 100.0 / 1000
|
14
|
+
|
15
|
+
#Corologix severity mapper
|
16
|
+
SEVERITIES = {:debug => 1, :verbose => 2, :info => 3, :warning => 4, :error => 5, :critical => 6}
|
17
|
+
|
18
|
+
|
19
|
+
module Severity
|
20
|
+
DEBUG = 1
|
21
|
+
VERBOSE = 2
|
22
|
+
INFO = 3
|
23
|
+
WARNING = 4
|
24
|
+
ERROR = 5
|
25
|
+
CRITICAL = 6
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
#Coralogix logs url
|
30
|
+
CORALOGIX_LOG_URL = "https://api.coralogix.com:443/api/v1/logs"
|
31
|
+
|
32
|
+
#Default private key
|
33
|
+
FAILED_PRIVATE_KEY = "9626c7dd-8174-5015-a3fe-5572e042b6d9"
|
34
|
+
|
35
|
+
#Default application name
|
36
|
+
FAILED_APP_NAME = "FAILED_APP_NAME"
|
37
|
+
|
38
|
+
#Default subsystem name
|
39
|
+
FAILED_SUB_SYSTEM = "FAILED_SUB_NAME"
|
40
|
+
|
41
|
+
#Default log file name
|
42
|
+
LOG_FILE_NAME = "coralogix.sdk.log"
|
43
|
+
|
44
|
+
#Default http timeout
|
45
|
+
HTTP_TIMEOUT = 30
|
46
|
+
|
47
|
+
#Number of attempts to retry http post
|
48
|
+
HTTP_SEND_RETRY_COUNT = 5
|
49
|
+
|
50
|
+
#Interval between failed http post requests
|
51
|
+
HTTP_SEND_RETRY_INTERVAL = 2
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require_relative 'manager'
|
2
|
+
require_relative 'debug_logger'
|
3
|
+
require_relative 'httpsender'
|
4
|
+
require_relative 'constants'
|
5
|
+
|
6
|
+
module Coralogix
|
7
|
+
|
8
|
+
class CoralogixLogger
|
9
|
+
# Set 'new' method to be a private method.
|
10
|
+
# This way it won't be possible to create a new intance of this class from outside.
|
11
|
+
private_class_method :new
|
12
|
+
|
13
|
+
# Constructor.
|
14
|
+
#
|
15
|
+
# @param name - logger name.
|
16
|
+
def initialize name
|
17
|
+
@category = name
|
18
|
+
end
|
19
|
+
|
20
|
+
# A getter for debug_mode.
|
21
|
+
# Default value is false.
|
22
|
+
# When set to true the coralogix logger will print output messages to a console and a file.
|
23
|
+
#
|
24
|
+
# @return [boolean] - true or false. (Default is false)
|
25
|
+
def self.debug_mode?
|
26
|
+
DebugLogger.debug_mode
|
27
|
+
end
|
28
|
+
|
29
|
+
# A setter for debug_mode.
|
30
|
+
# Default value is false.
|
31
|
+
# When set to true the coralogix logger will print output messages to a console and a file.
|
32
|
+
#
|
33
|
+
# @param value - true or false. (Default is false)
|
34
|
+
def self.debug_mode=(value)
|
35
|
+
DebugLogger.debug_mode=value
|
36
|
+
end
|
37
|
+
|
38
|
+
# A setter for disable_proxy.
|
39
|
+
# By default HTTP object will use proxy environment variable if exists. In some cases this migh be an issue
|
40
|
+
# When set to false the HTTP object will ignore any proxy.
|
41
|
+
#
|
42
|
+
# @param value - true or false. (Default is false)
|
43
|
+
def self.disable_proxy=(value)
|
44
|
+
CoralogixHTTPSender.disable_proxy=value
|
45
|
+
end
|
46
|
+
|
47
|
+
# A class method (static) to return a new instance of the current class.
|
48
|
+
# This is the most common pattern when using logging.
|
49
|
+
#
|
50
|
+
# @param name - name of the logger. The category. Usually this will be a new name for every class or a logical unit.
|
51
|
+
# @return [CoralogixLogger] return a new instance of CoralogixLogger.
|
52
|
+
def self.get_logger name
|
53
|
+
#Return a new instance of the current class.
|
54
|
+
CoralogixLogger.send(:new, name)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Configure coralogix logger with customer specific values
|
58
|
+
#
|
59
|
+
# @param private_key - private key
|
60
|
+
# @param app_name - application name
|
61
|
+
# @param sub_system - sub system name
|
62
|
+
# @return [boolean] return a true or false.
|
63
|
+
def self.configure private_key, app_name, sub_system
|
64
|
+
LoggerManager.configure(:privateKey => private_key, :applicationName => app_name, :subsystemName => sub_system) unless LoggerManager.configured
|
65
|
+
end
|
66
|
+
|
67
|
+
# Log a message.
|
68
|
+
#
|
69
|
+
# @param severity - log severity
|
70
|
+
# @param message - log message
|
71
|
+
# @param category - log category
|
72
|
+
# @param className - log class name
|
73
|
+
# @param methodName - log method name
|
74
|
+
# @param threadId - log thread id
|
75
|
+
def log severity, message, category: @category, className: "", methodName: "", threadId: ""
|
76
|
+
LoggerManager.add_logline message, severity, category, :className => className, :methodName => methodName, :threadId => threadId
|
77
|
+
end
|
78
|
+
|
79
|
+
# Create log methods for each severity.
|
80
|
+
# This is a ruby thing. If you are writing in other languages just create a method for each severity.
|
81
|
+
# For instance, for info severity it will create a method:
|
82
|
+
# def info message, category: @category, className: "", methodName: "", threadId: ""
|
83
|
+
SEVERITIES.keys.each do |severity|
|
84
|
+
define_method("#{severity}") do |message, category: @category, className: "", methodName: "", threadId: ""|
|
85
|
+
LoggerManager.add_logline message, SEVERITIES["#{__method__}".to_sym], category, :className => className, :methodName => methodName, :threadId => threadId
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
data/lib/debug_logger.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
module Coralogix
|
4
|
+
# @private
|
5
|
+
class DebugLogger
|
6
|
+
|
7
|
+
def self.initialize
|
8
|
+
begin
|
9
|
+
@mutex = Mutex.new
|
10
|
+
@debug = false
|
11
|
+
rescue Exception => e
|
12
|
+
if @debug
|
13
|
+
puts e.message
|
14
|
+
puts e.backtrace.inspect
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.debug_mode?
|
20
|
+
@debug
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.debug_mode=(value)
|
24
|
+
begin
|
25
|
+
@debug = value
|
26
|
+
if value
|
27
|
+
@logger = Logger.new(LOG_FILE_NAME, 1, 10485760)
|
28
|
+
else
|
29
|
+
@logger.close unless @logger == nil
|
30
|
+
@logger = nil
|
31
|
+
end
|
32
|
+
rescue Exception => e
|
33
|
+
if @debug
|
34
|
+
puts e.message
|
35
|
+
puts e.backtrace.inspect
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Logger::Severity.constants.each do |level|
|
41
|
+
define_singleton_method("#{level.downcase}") do |*args|
|
42
|
+
@mutex.synchronize do
|
43
|
+
if @debug
|
44
|
+
puts "#{__method__.upcase}: #{Time.now.strftime('%H:%M:%S.%L')} - #{args}"
|
45
|
+
@logger.send("#{__method__}", args)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
initialize
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/lib/httpsender.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'json'
|
3
|
+
require_relative 'constants'
|
4
|
+
require_relative 'debug_logger'
|
5
|
+
require 'openssl'
|
6
|
+
require 'benchmark'
|
7
|
+
|
8
|
+
module Coralogix
|
9
|
+
# @private
|
10
|
+
module CoralogixHTTPSender
|
11
|
+
|
12
|
+
@initialized = false
|
13
|
+
|
14
|
+
def CoralogixHTTPSender.disable_proxy value
|
15
|
+
@disable_proxy = value
|
16
|
+
end
|
17
|
+
|
18
|
+
def CoralogixHTTPSender.disable_proxy=(value)
|
19
|
+
@disable_proxy = value
|
20
|
+
end
|
21
|
+
|
22
|
+
def CoralogixHTTPSender.initialize
|
23
|
+
begin
|
24
|
+
@uri = URI(CORALOGIX_LOG_URL)
|
25
|
+
if(@disable_proxy)
|
26
|
+
#@http = Net::HTTP.start(@uri.host, @uri.port, p_addr=nil, p_port=nil, :use_ssl => true, :verify_mode=> OpenSSL::SSL::VERIFY_NONE)
|
27
|
+
@http = Net::HTTP.new(@uri.host, @uri.port, p_addr=nil, p_port=nil)
|
28
|
+
else
|
29
|
+
#@http = Net::HTTP.start(@uri.host, @uri.port, :use_ssl => true, :verify_mode=> OpenSSL::SSL::VERIFY_NONE)
|
30
|
+
@http = Net::HTTP.new(@uri.host, @uri.port)
|
31
|
+
end
|
32
|
+
@http.use_ssl = true
|
33
|
+
@http.keep_alive_timeout = 10
|
34
|
+
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
35
|
+
@http.read_timeout = HTTP_TIMEOUT # seconds
|
36
|
+
@req = Net::HTTP::Post.new(@uri.path, 'Content-Type' => 'application/json')
|
37
|
+
@initialized = true
|
38
|
+
rescue Exception => e
|
39
|
+
DebugLogger.error e.message
|
40
|
+
DebugLogger.error e.backtrace.inspect
|
41
|
+
@initialized = false
|
42
|
+
end
|
43
|
+
return @initialized
|
44
|
+
end
|
45
|
+
|
46
|
+
# A helper method to post http request
|
47
|
+
#
|
48
|
+
# @param bulk - JSON bulk containing the log entries
|
49
|
+
def CoralogixHTTPSender.send_request bulk
|
50
|
+
|
51
|
+
self.initialize unless @initialized
|
52
|
+
attempt = 0
|
53
|
+
while attempt < HTTP_SEND_RETRY_COUNT
|
54
|
+
begin
|
55
|
+
DebugLogger.info "About to send bulk to Coralogix server. Attempt number: #{attempt+1}"
|
56
|
+
@req.body = bulk.to_json
|
57
|
+
DebugLogger.debug Benchmark.measure {
|
58
|
+
res = @http.request(@req)
|
59
|
+
DebugLogger.info "Successfully sent bulk to Coralogix server. Result is: #{res.code}"
|
60
|
+
}.to_s
|
61
|
+
return true
|
62
|
+
rescue Exception => e
|
63
|
+
DebugLogger.error e.message
|
64
|
+
DebugLogger.error e.backtrace.inspect
|
65
|
+
end
|
66
|
+
attempt+=1;
|
67
|
+
DebugLogger.error "Failed to send bulk. Will retry in: #{HTTP_SEND_RETRY_INTERVAL} seconds..."
|
68
|
+
sleep HTTP_SEND_RETRY_INTERVAL
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/lib/manager.rb
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
#require 'net/http'
|
2
|
+
#require 'json'
|
3
|
+
require_relative 'httpsender'
|
4
|
+
require_relative 'constants'
|
5
|
+
require_relative 'debug_logger'
|
6
|
+
#require "benchmark"
|
7
|
+
|
8
|
+
module Coralogix
|
9
|
+
# @private
|
10
|
+
class LoggerManager
|
11
|
+
|
12
|
+
class << self
|
13
|
+
attr_accessor :configured
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.initialize
|
17
|
+
@buffer = []
|
18
|
+
@buffer_size = 0
|
19
|
+
@bulk_template = {:privateKey => FAILED_PRIVATE_KEY, :applicationName => FAILED_APP_NAME, :subsystemName => FAILED_SUB_SYSTEM}
|
20
|
+
@mutex = Mutex.new
|
21
|
+
self.run
|
22
|
+
end
|
23
|
+
|
24
|
+
# Add a log line to our buffer.
|
25
|
+
#
|
26
|
+
# @param **args - Customer parameters:
|
27
|
+
# privateKey - Private Key
|
28
|
+
# applicationName - Application name
|
29
|
+
# subsystemName - Subsystem name
|
30
|
+
# @return [boolean] return true for success or false for failure.
|
31
|
+
def self.configure **args
|
32
|
+
begin
|
33
|
+
@bulk_template = args.merge({:computerName => `hostname`.strip})
|
34
|
+
configured = true
|
35
|
+
rescue
|
36
|
+
return false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Add a log line to our buffer.
|
41
|
+
#
|
42
|
+
# @param message - The logs message. This is a must parameter.
|
43
|
+
# @param severity - The severity of the log message. This is a must parameter.
|
44
|
+
# @param category - The category (logger name) of the message. This is a must parameter.
|
45
|
+
# @param **args - Optional parameters. It can be:
|
46
|
+
# className - The class name where the log message was sent from.
|
47
|
+
# methodName - The method name where the log message was sent from.
|
48
|
+
# threadId - The thread id where the log message was sent from.
|
49
|
+
# @return [boolean] return true for success or false for failure.
|
50
|
+
def self.add_logline message, severity, category, **args
|
51
|
+
begin
|
52
|
+
@mutex.synchronize do
|
53
|
+
if @buffer_size < MAX_LOG_BUFFER_SIZE
|
54
|
+
#Combine a logentry from the must parameters together with the optional one.
|
55
|
+
new_entry = {:text => message, :timestamp => Time.now.utc.to_f * 1000, :severity => severity, :category => category}.merge(args)
|
56
|
+
@buffer << new_entry
|
57
|
+
#Updte the buffer size to reflect the new size.
|
58
|
+
@buffer_size+=new_entry.to_json.bytesize
|
59
|
+
else
|
60
|
+
DebugLogger.warn "Buffer is full. Ignoring current message."
|
61
|
+
end
|
62
|
+
end
|
63
|
+
rescue Exception => e
|
64
|
+
DebugLogger.error e.message
|
65
|
+
DebugLogger.error e.backtrace.inspect
|
66
|
+
return false
|
67
|
+
end
|
68
|
+
return true
|
69
|
+
end
|
70
|
+
|
71
|
+
# Send bulk from the buffer
|
72
|
+
def self.send_bulk
|
73
|
+
begin
|
74
|
+
@mutex.synchronize do
|
75
|
+
# Total buffer size
|
76
|
+
size = @buffer.size
|
77
|
+
|
78
|
+
# If the size is bigger than the maximum allowed chunk size then split it by half.
|
79
|
+
# Keep splitting it until the size is less than MAX_LOG_CHUNK_SIZE
|
80
|
+
while @buffer.take(size).join(",").bytesize > MAX_LOG_CHUNK_SIZE
|
81
|
+
size=size/2;
|
82
|
+
end
|
83
|
+
|
84
|
+
DebugLogger.info "Checking buffer size. Total log entries is: #{size}"
|
85
|
+
@bulk_template[:logEntries] = @buffer.shift(size)
|
86
|
+
|
87
|
+
# Extract from the buffer size the total amount of the logs we removed from the buffer
|
88
|
+
@buffer_size-= (@bulk_template[:logEntries].to_json.bytesize - 2 - size-1)
|
89
|
+
|
90
|
+
DebugLogger.info "Bufer size after removal is: #{@buffer.join(",").bytesize}"
|
91
|
+
end
|
92
|
+
CoralogixHTTPSender.send_request(@bulk_template) unless @bulk_template[:logEntries].empty?
|
93
|
+
rescue Exception => e
|
94
|
+
DebugLogger.error e.message
|
95
|
+
DebugLogger.error e.backtrace.inspect
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# Start timer execution.
|
100
|
+
# The timer should send every X seconds logs from the buffer.
|
101
|
+
def self.run
|
102
|
+
begin
|
103
|
+
timer_thread = Thread.new do
|
104
|
+
while true
|
105
|
+
# Send log bulk
|
106
|
+
self.send_bulk
|
107
|
+
|
108
|
+
# Check when is the next time we should send logs?
|
109
|
+
# If we already have at least half of the max chunk size then we are working in fast mode
|
110
|
+
next_check_interval = @buffer_size > (MAX_LOG_CHUNK_SIZE / 2) ? FAST_SEND_SPEED_INTERVAL : NORMAL_SEND_SPEED_INTERVAL
|
111
|
+
DebugLogger.debug "Next buffer check is scheduled in #{next_check_interval} seconds"
|
112
|
+
sleep next_check_interval
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
#Set thread priority to a high number
|
117
|
+
timer_thread.priority = 100
|
118
|
+
rescue Exception => e
|
119
|
+
DebugLogger.error e.message
|
120
|
+
DebugLogger.error e.backtrace.inspect
|
121
|
+
return false
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
initialize
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
metadata
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: coralogix_logger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Royee Goldberg
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-11-29 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Coralogix ruby sdk to send logs to Coralogix server.
|
14
|
+
email: royee@coralogix.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- README.md
|
20
|
+
- lib/constants.rb
|
21
|
+
- lib/coralogix_logger.rb
|
22
|
+
- lib/debug_logger.rb
|
23
|
+
- lib/httpsender.rb
|
24
|
+
- lib/manager.rb
|
25
|
+
homepage: http://www.coralogix.com
|
26
|
+
licenses: []
|
27
|
+
metadata: {}
|
28
|
+
post_install_message:
|
29
|
+
rdoc_options: []
|
30
|
+
require_paths:
|
31
|
+
- lib
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 2.0.0
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
requirements: []
|
43
|
+
rubyforge_project:
|
44
|
+
rubygems_version: 2.4.8
|
45
|
+
signing_key:
|
46
|
+
specification_version: 4
|
47
|
+
summary: Coralogix Ruby Logger SDK
|
48
|
+
test_files: []
|