Ru-b2-SQL-Backups/loggman.rb

45 lines
814 B
Ruby
Raw Normal View History

# frozen_string_literal: true
require 'time'
require 'fileutils'
# Loggman class
class Loggman
def initialize(logfile)
@logfile = logfile
end
def log(message, level = :info)
delete_old_logs
timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S')
File.open(@logfile, 'a') do |file|
file.puts "[#{timestamp}] [#{level.to_s.upcase}] #{message}"
end
end
def info(message)
log(message, :info)
end
def warn(message)
log(message, :warn)
end
def error(message)
log(message, :error)
end
def debug(message)
log(message, :debug)
end
def delete_old_logs
max_age_days = 7
max_age_seconds = max_age_days * 24 * 60 * 60
if File.exist?(@logfile) && Time.now - File.mtime(@logfile) > max_age_seconds
FileUtils.rm(@logfile)
end
end
end