37 lines
1 KiB
Ruby
37 lines
1 KiB
Ruby
# require 'pry'
|
|
|
|
class Log < ApplicationRecord
|
|
belongs_to :user
|
|
belongs_to :package
|
|
belongs_to :screenshot
|
|
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('id DESC')
|
|
}
|
|
|
|
def self.log(message, ip: nil, user: nil, section: 'frontend', level: 'info', screenshot: nil, package: nil)
|
|
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.to_s
|
|
log.screenshot = screenshot
|
|
log.package = package
|
|
log.user = user # current_user
|
|
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
|