class CefLogger
Attributes
facility[RW]
filtered_keys[RW]
product[RW]
program[RW]
vendor[RW]
version[RW]
Public Class Methods
compile(data)
click to toggle source
# File lib/cef_logger.rb, line 46 def compile(data) case data when Hash data .reject { |key,| filtered_keys.to_a.map(&:to_s).include?(key.to_s) } .map { |key, value| "#{key}=#{escape_value(value)}" } .join(' ') else raise "Can't compile non-hashes as extensions for CEF logging!" end end
escape_header(value)
click to toggle source
# File lib/cef_logger.rb, line 31 def escape_header(value) value .to_s .gsub('|', '\\|') end
escape_value(value)
click to toggle source
# File lib/cef_logger.rb, line 37 def escape_value(value) value .to_s .gsub('\\', '\\\\\\') .gsub('=', '\\=') .gsub("\n", '\n') .gsub("\r", '\r') end
log(name: '', severity: 6, data: {})
click to toggle source
# File lib/cef_logger.rb, line 10 def log(name: '', severity: 6, data: {}) id = SecureRandom.uuid extension = compile data line = [ 'CEF:0', vendor, product, version, id, escape_header(name), severity, extension ].join('|') logger.info line end
logger()
click to toggle source
# File lib/cef_logger.rb, line 58 def logger @logger ||= Syslog::Logger.new program, facility end