class Schleuder::Listlogger

Public Class Methods

new(list) click to toggle source
Calls superclass method
# File lib/schleuder/listlogger.rb, line 4
def initialize(list)
  super(list.logfile, 'daily')
  @from = list.email
  @list = list
  @adminaddresses = list.admins.map { |sub| [sub.email, sub.key] }
  @level = ::Logger.const_get(list.log_level.upcase)
  remove_old_logfiles(list)
end

Public Instance Methods

remove_old_logfiles(list) click to toggle source

Logger rotates but doesn’t delete older files, so we’re helping ourselves.

# File lib/schleuder/listlogger.rb, line 15
def remove_old_logfiles(list)
  logfiles_to_keep = list.logfiles_to_keep.to_i
  if logfiles_to_keep < 1
    logfiles_to_keep = list.class.column_defaults['logfiles_to_keep']
  end
  suffix_now = Time.now.strftime('%Y%m%d').to_i
  del_older_than = suffix_now - logfiles_to_keep
  Pathname.glob("#{list.logfile}.????????").each do |file|
    if file.basename.to_s.match(/\.([0-9]{8})$/)
      if del_older_than.to_i >= $1.to_i
        file.unlink
      end
    end
  end
end