class SemanticLogger::Formatters::Syslog

def call(log, logger)

def call(log, logger)
  message = super
  create_syslog_packet(message)
end

def create_syslog_packet(message)

Create Syslog Packet
def create_syslog_packet(message)
  packet          = SyslogProtocol::Packet.new
  packet.hostname = logger.host
  packet.facility = facility
  packet.tag      = logger.application.delete(" ")
  packet.content  = message
  packet.time     = log.time
  packet.severity = level_map[log.level]
  packet.assemble(@max_size)
end

def initialize(facility: ::Syslog::LOG_USER, level_map: LevelMap.new, max_size: Integer)

SemanticLogger.add_appender(appender: :syslog, level_map: {warn: ::Syslog::LOG_NOTICE})
# Change the warn level to LOG_NOTICE level instead of a the default of LOG_WARNING.
Example:

Supply a custom map of SemanticLogger levels to syslog levels.
level_map: [Hash | SemanticLogger::Formatters::Syslog::LevelMap]

Default: ::Syslog::LOG_USER
facility: [Integer]
Parameters:

Create a Syslog Log Formatter
def initialize(facility: ::Syslog::LOG_USER, level_map: LevelMap.new, max_size: Integer)
  @facility  = facility
  @level_map = level_map.is_a?(LevelMap) ? level_map : LevelMap.new(level_map)
  @max_size = max_size
  super()
end

def time

Time is part of the syslog packet and is not included in the formatted message.
def time
  nil
end