Class: SrLog::Log

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/sr_log/log.rb

Defined Under Namespace

Classes: SrLogger

Instance Method Summary collapse

Instance Method Details

#log(log_key, msg, opts = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sr_log/log.rb', line 16

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: SrLogger.new(log_path), log_month: log_month}
  end

  msg = "Logged by user: #{opts[:current_user]}\n#{msg}" if opts.has_key?(:current_user)

  @logfiles[log_key][:log].info msg
end