Нет описания http://j1x-huginn.herokuapp.com

agent_log.rb 839B

123456789101112131415161718192021222324
  1. class AgentLog < ActiveRecord::Base
  2. attr_accessible :agent, :inbound_event, :level, :message, :outbound_event
  3. belongs_to :agent
  4. belongs_to :inbound_event, :class_name => "Event"
  5. belongs_to :outbound_event, :class_name => "Event"
  6. validates_presence_of :agent, :message
  7. validates_numericality_of :level, :only_integer => true, :greater_than_or_equal_to => 0, :less_than => 5
  8. def self.log_for_agent(agent, message, options = {})
  9. log = agent.logs.create! options.merge(:message => message)
  10. if agent.logs.count > log_length
  11. oldest_id_to_keep = agent.logs.limit(1).offset(log_length - 1).pluck("agent_logs.id")
  12. agent.logs.where("agent_logs.id < ?", oldest_id_to_keep).delete_all
  13. end
  14. log
  15. end
  16. def self.log_length
  17. ENV['AGENT_LOG_LENGTH'].present? ? ENV['AGENT_LOG_LENGTH'].to_i : 100
  18. end
  19. end