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
|