class SrLog::Log
Public Instance Methods
log(log_key, msg, opts = {})
click to toggle source
# File lib/sr_log/log.rb, line 10 def log log_key, msg, opts = {} @logfiles ||= {} log_month = Date.today.strftime '%Y.%m' unless @logfiles.has_key?(log_key) && @logfiles[log_key][:log_month] == log_month filename = "#{log_month}_#{log_key.to_s}.log" log_path = if opts.has_key?(:dir) FileUtils.mkdir_p(opts[:dir]) unless File.directory?(opts[:dir]) File.join opts[:dir], filename elsif defined?(Rails) Rails.root.join 'log', filename else folder_path = File.expand_path File.join('.', 'log') FileUtils.mkdir(folder_path) unless File.directory?(folder_path) File.join folder_path, filename end @logfiles[log_key] = {log: Logger.new(log_path), log_month: log_month} @logfiles[log_key][:log].formatter = proc do |severity, timestamp, progname, msg| opts[:single_spaced] ? "#{msg}\n" : "\n#{msg}\n" end end msg = "Logged by user: #{opts[:current_user]}\n#{msg}" if opts.has_key?(:current_user) @logfiles[log_key][:log].info msg end