debshots/app/models/log.rb

32 lines
848 B
Ruby

# require 'pry'
class Log < ApplicationRecord
validates :message, presence: true
validates :section, presence: true
validates :section, inclusion: { in: ['importer', 'upload', 'frontend'] }
validates :level, presence: true
validates :level, inclusion: { in: ['info', 'error'] }
default_scope {
order('created_at ASC')
}
def self.log(message, section='frontend', level='info')
log = Log.new
ip_address = request.remote_ip if defined? request
token = session[:token] if defined? session
log.message = message
log.section = section
log.level = level
log.ip_address = ip_address
log.token = token
logger.error "Could not log to database - validation errors: #{log.errors.to_a}" unless log.valid?
log.save
# log
logger.info "Log.log - #{log.section} - #{log.message}"
end
end