Module: LogSweeper

Extended by:
LogSweeper
Included in:
LogSweeper
Defined in:
lib/log_sweeper.rb,
lib/log_sweeper/version.rb

Constant Summary collapse

VERSION =
"1.0.0"

Instance Method Summary collapse

Instance Method Details

#run(path, logs_lifetime_days_count: 10, logger: Logger.new(STDOUT)) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/log_sweeper.rb', line 12

def run(path, logs_lifetime_days_count: 10, logger: Logger.new(STDOUT))
  min_mtime = Time.now - (logs_lifetime_days_count.to_f * 24 * 3600)

  Pathname.new(path).each_child do |entry|
    next unless entry.file?

    filename = entry.basename.to_s

    if filename.match?(/\.log\b/) && entry.mtime < min_mtime
      logger.info "deleting #{entry}"
      entry.delete
    elsif filename.match?(/\.log\.\d+$/)
      logger.info "gzipping #{entry}"
      compress_file(entry)
      entry.delete
    else
      logger.info "skipping #{entry}"
    end
  end

  true
end