From d02a3f595d9fa92fa223c9de1d012c49c642df93 Mon Sep 17 00:00:00 2001 From: ricola Date: Sun, 14 Dec 2025 17:46:56 -0600 Subject: [PATCH] Store logs in file --- config/schedule.rb | 2 -- vedia.rb | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/config/schedule.rb b/config/schedule.rb index ec9ae59..6247285 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -2,8 +2,6 @@ if ENV['RACK_ENV'] set :environment, ENV['RACK_ENV'] end -set :output, 'vedia.log' - every 5.minutes do rake "close_expired_votes" end diff --git a/vedia.rb b/vedia.rb index 5f08e4d..7921b44 100644 --- a/vedia.rb +++ b/vedia.rb @@ -14,6 +14,7 @@ require 'mail' require 'ostruct' require 'tzinfo' require 'redcarpet' +require 'logger' include GetText @@ -75,6 +76,18 @@ set_locale('ca') enable :sessions MajorityJudgment.values = settings.values +log_file = File.new('vedia.log', 'a+') +log_file.sync = true + +logger = Logger.new(log_file) +logger.level = Logger::INFO + +use Rack::CommonLogger, log_file + +configure do + set :logger, logger +end + get '/' do redirect '/votes' end @@ -548,11 +561,11 @@ end def close_expired_votes Vote.where(state: 'open').where("expire_on < :now", { now: Time.now.utc }).each do |vote| - puts "#{Time.now.utc} Closing vote \"#{vote.title}\" because it expired on #{vote.expire_on}..." + logger.info "#{Time.now.utc} Closing vote \"#{vote.title}\" because it expired on #{vote.expire_on}..." vote.state = 'closed' vote.save User.all.each do |user| - puts "#{Time.now.utc} Sending results by email to #{user.email}..." + logger.info "#{Time.now.utc} Sending results by email to #{user.email}..." mail = Mail.new mail.from = settings.admin_email mail.to = user.email