Class: Oohlalog::Logger

Inherits:
Object
  • Object
show all
Includes:
Severity
Defined in:
lib/oohlalog/logger.rb

Defined Under Namespace

Modules: Severity

Constant Summary

Constants included from Severity

Severity::DEBUG, Severity::ERROR, Severity::FATAL, Severity::INFO, Severity::UNKNOWN, Severity::WARN

Instance Method Summary collapse

Constructor Details

#initialize(buffer_size = 100, level = DEBUG, options = {}) ⇒ Logger

Returns a new instance of Logger.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/oohlalog/logger.rb', line 16

def initialize(buffer_size=100, level = DEBUG, options={})
  @api_key = Oohlalog.api_key
  if options.has_key? :api_key
    @api_key = options[:api_key]
  elsif options.has_key? "api_key"
    @api_key = options["api_key"]
  end

  @agent = Oohlalog.agent
  if options.has_key? :agent
      @agent = options[:agent]
  elsif options.has_key? "agent"
      @agent = options["agent"]
  end

  @tags =Oohlalog.tags
  @session_tag = Oohlalog.session_tag

  @secure = Oohlalog.secure
  @buffer_size = buffer_size
  @buffer = []
  self.level = level
end

Instance Method Details

#add(severity, message, category = nil, details = nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/oohlalog/logger.rb', line 40

def add(severity, message, category=nil, details=nil)
      log_message = message

      if message.nil? || message.to_s.empty?
          log_message = category
          category = nil
      end
      if category == message
          category = nil
      end

      session = Thread.current[:session_id]

      return if log_message.nil? || log_message.to_s.empty?

      if severity >= self.level
          if details.nil? && defined?(log_message.backtrace)
              details = log_message.backtrace.join("\n")
          end
          @buffer << {level: severity_string(severity), message: log_message.to_s.gsub(/\e\[(\d+)m/, ''), agent: @agent , category: category, details: details, timestamp:(Time.now.to_f * 1000).to_i, hostName: Socket.gethostname, token: session}
          check_buffer_size
          return
      end
end

#flush_bufferObject



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/oohlalog/logger.rb', line 88

def flush_buffer
  return if @buffer.size == 0

  payload = { logs: [] }
  Thread.new do
    while @buffer.size > 0
      entry = @buffer.shift
      payload[:logs] << entry
    end
    send_payload(payload)
  end
end

#levelObject



75
76
77
# File 'lib/oohlalog/logger.rb', line 75

def level
  @level
end

#level=(l) ⇒ Object



71
72
73
# File 'lib/oohlalog/logger.rb', line 71

def level=(l)
  @level = l
end

#severity_string(severity_level) ⇒ Object



79
80
81
82
83
84
85
86
# File 'lib/oohlalog/logger.rb', line 79

def severity_string(severity_level)
  Severity.constants.each do |severity|
    if Severity.const_get(severity) == severity_level
      return severity.downcase
    end
  end
  return "unknown"
end