class LoggerJson::Model

Attributes

json[RW]

Public Class Methods

new(message, type) click to toggle source
# File lib/logger_json/model.rb, line 5
def initialize(message, type)
  @type = type
  @json = convert_to_json message
end

Private Instance Methods

add_array_in_log(msg) click to toggle source
# File lib/logger_json/model.rb, line 28
def add_array_in_log(msg)
  logs = log msg[0]
  msg[1].select.with_index {|val, index| logs[index] = val}
  logs.to_json
end
add_in_log(msg) click to toggle source
# File lib/logger_json/model.rb, line 47
def add_in_log(msg)
  logs = log msg[0]
  logs[:log] = msg[1]
  logs.to_json
end
convert_to_json(msg) click to toggle source
# File lib/logger_json/model.rb, line 12
def convert_to_json(msg)
  return log(msg[0]).to_json if msg[1].nil?
  return (log(msg[0]).merge(msg[1])).to_json if msg[1].is_a? Hash
  add_in_log msg
end
file_code() click to toggle source
# File lib/logger_json/model.rb, line 53
def file_code
  caller.each do |line|
    return line if line.start_with?(LoggerJson::Text::ROOT_FOLDER)
  end
end
host() click to toggle source
# File lib/logger_json/model.rb, line 59
def host
  Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
end
log(message) click to toggle source
# File lib/logger_json/model.rb, line 18
def log(message)
  {
    date: DateTime.now.iso8601(9),
    level: @type,
    thread_id: Thread.current.object_id,
    log_message: message,
    file: file_code
  }.merge(request_data)
end
request_data() click to toggle source
# File lib/logger_json/model.rb, line 34
def request_data
  return { source_ip: host.ip_address } if @_request.nil?
  _env = @_request.env
  {
    method: _env['REQUEST_METHOD'],
    user_agent: _env['HTTP_USER_AGENT'],
    source_ip: _env['REMOTE_ADDR'],
    request: _env['PATH_INFO'],
    protocol: _env['SERVER_PROTOCOL'],
    query_string: _env['QUERY_STRING']
  }
end