class OhMyLog::SyslogImplementor
Attributes
facility[RW]
public_ip[R]
severity[RW]
tag[R]
Public Class Methods
new(hostname: nil, priority: nil, facility: nil, severity: nil, tag: nil, program_name: "NA", syslog_facility: "Syslog::LOG_LOCAL1")
click to toggle source
# File lib/oh_my_log/syslog_implementor.rb, line 12 def initialize(hostname: nil, priority: nil, facility: nil, severity: nil, tag: nil, program_name: "NA", syslog_facility: "Syslog::LOG_LOCAL1") @hostname = retrive_hostname @public_ip = retrive_public_ip @priority = priority @facility = facility @severity = severity @tag = tag @program_name = program_name @syslog_facility = syslog_facility OhMyLog::Log.configuration.log_instance = Syslog::Logger.new program_name, syslog_facility.constantize # override_log_formatter end
Public Instance Methods
new_using(processor_name)
click to toggle source
# File lib/oh_my_log/syslog_implementor.rb, line 25 def new_using(processor_name) OhMyLog::SyslogConfiguration.use(processor_name) SyslogImplementor.new(hostname: @hostname, priority: @priority, facility: @facility, severity: @severity, tag: @tag, program_name: @program_name, syslog_facility: @syslog_facility) end
print(params)
click to toggle source
TODO no need to pass :ip we can retrieve it from this class
Calls superclass method
# File lib/oh_my_log/syslog_implementor.rb, line 31 def print(params) data = [super(params)] if data[0].bytesize >= 1024 if OhMyLog::SyslogConfiguration.split_operation == :split id = SecureRandom.hex(8) message = message_text(ip: params[:ip], user: params[:sender], url: params[:url], m: params[:m], s: params[:s], p: params[:p]) data = [] priority = priority_text header = header_text(params[:request_time]) base_msg = priority + header + "#{@tag}[ID=#{id}]:" remaining_byte = 1023 - base_msg.bytesize message_chunks = get_binary_chunks(message, remaining_byte) message_chunks.each {|chunk_data| data << base_msg + chunk_data + ";"} else data[0] = get_binary_chunks(data[0], 1021)[0] + "..." end end data end
Private Instance Methods
get_binary_chunks(string, size)
click to toggle source
# File lib/oh_my_log/syslog_implementor.rb, line 53 def get_binary_chunks(string, size) Array.new(((string.length + size - 1) / size)) {|i| string.byteslice(i * size, size)} end
retrive_hostname()
click to toggle source
# File lib/oh_my_log/syslog_implementor.rb, line 71 def retrive_hostname Socket.gethostname rescue nil end
retrive_public_ip()
click to toggle source
def override_log_formatter
OhMyLog::Log.configuration.log_instance.formatter = proc do |severity, datetime, progname, msg| "#{msg}\n" end
end
# File lib/oh_my_log/syslog_implementor.rb, line 63 def retrive_public_ip if Rails.env.test? "127.0.0.1" else Net::HTTP.get(URI("http://checkip.amazonaws.com")).gsub("\n", "") rescue nil end end