class RedmineInstaller::Logger
Public Class Methods
new()
click to toggle source
# File lib/redmine-installer/logger.rb, line 25 def initialize if ENV['REDMINE_INSTALLER_LOGFILE'] @output = File.open(ENV['REDMINE_INSTALLER_LOGFILE'], 'w') else @output = Tempfile.create('redmine_installer.log') end end
verify(log_file)
click to toggle source
# File lib/redmine-installer/logger.rb, line 6 def self.verify(log_file) log_file = log_file.to_s unless File.exist?(log_file) puts "File '#{log_file}' does not exist." exit(false) end content = File.open(log_file, &:to_a) digest1 = content.pop digest2 = Digest::SHA256.hexdigest(content.join) if digest1 == digest2 puts RedmineInstaller.pastel.green("Logfile is OK. Digest verified.") else puts RedmineInstaller.pastel.red("Logfile is not OK. Digest wasn't verified.") end end
Public Instance Methods
close()
click to toggle source
# File lib/redmine-installer/logger.rb, line 43 def close @output.flush @output.close end
error(*messages)
click to toggle source
# File lib/redmine-installer/logger.rb, line 62 def error(*messages) log('ERROR', *messages) end
finish()
click to toggle source
# File lib/redmine-installer/logger.rb, line 37 def finish close digest = Digest::SHA256.file(path).hexdigest File.open(path, 'a') { |f| f.write(digest) } end
info(*messages)
click to toggle source
# File lib/redmine-installer/logger.rb, line 58 def info(*messages) log(' INFO', *messages) end
log(severity, *messages)
click to toggle source
# File lib/redmine-installer/logger.rb, line 74 def log(severity, *messages) messages.each do |message| @output.puts("#{severity}: #{message}") end @output.flush end
move_to(redmine, suffix: '%d%m%Y_%H%M%S')
click to toggle source
# File lib/redmine-installer/logger.rb, line 48 def move_to(redmine, suffix: '%d%m%Y_%H%M%S') close new_path = File.join(redmine.log_path, Time.now.strftime("redmine_installer_#{suffix}.log")) FileUtils.mkdir_p(redmine.log_path) FileUtils.mv(path, new_path) @output = File.open(new_path, 'a+') end
path()
click to toggle source
# File lib/redmine-installer/logger.rb, line 33 def path @output.path end
std(*messages)
click to toggle source
# File lib/redmine-installer/logger.rb, line 70 def std(*messages) log(' STD', *messages) end
warn(*messages)
click to toggle source
# File lib/redmine-installer/logger.rb, line 66 def warn(*messages) log(' WARN', *messages) end