vicvega/chaltron

View on GitHub
app/models/log.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Log < ApplicationRecord
  Severities = %w( emerg alert crit err warning notice info debug )

  validates_presence_of :severity, :message
  validates_inclusion_of :severity, in: Severities

  before_validation :change_severity

  after_create :to_syslog if Chaltron.enable_syslog

  private

  def change_severity
    self.severity = :emerg   if self.severity && self.severity.to_sym == :panic
    self.severity = :err     if self.severity && self.severity.to_sym == :error
    self.severity = :warning if self.severity && self.severity.to_sym == :warn
  end

  def to_syslog
    Syslog.open(Rails.application.class.parent.to_s, Syslog::LOG_PID, Chaltron.syslog_facility) do |s|
      s.send(self.severity.to_sym, self.category.upcase + ' - ' + self.message)
    end
  end

end