X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=daklib%2Furgencylog.py;h=a47974dd11f006ad7bd9e4f3b226301826ce46dd;hp=fb2e7fab7363b459182616526045c793d9dd4648;hb=391f5ec09a119131dc846b796ca791f4cecc69e4;hpb=0dada7c5846e0ae676bbe0b81c1065fe75ca9b86 diff --git a/daklib/urgencylog.py b/daklib/urgencylog.py old mode 100755 new mode 100644 index fb2e7fab..a47974dd --- a/daklib/urgencylog.py +++ b/daklib/urgencylog.py @@ -29,42 +29,61 @@ Urgency Logger class for dak import os import time -from singleton import Singleton from config import Config from utils import warn, open_file, move ############################################################################### -class UrgencyLog(Singleton): +class UrgencyLog(object): "Urgency Logger object" + + __shared_state = {} + def __init__(self, *args, **kwargs): - super(UrgencyLog, self).__init__(*args, **kwargs) + self.__dict__ = self.__shared_state + + if not getattr(self, 'initialised', False): + self.initialised = True + + self.timestamp = time.strftime("%Y%m%d%H%M%S") - def _startup(self): - "Initialize a new Urgency Logger object" + cnf = Config() + if cnf.has_key("Dir::UrgencyLog"): + # Create the log directory if it doesn't exist + self.log_dir = cnf["Dir::UrgencyLog"] - self.timestamp = time.strftime("%Y%m%d%H%M%S") + if not os.path.exists(self.log_dir) or not os.access(self.log_dir, os.W_OK): + warn("UrgencyLog directory %s does not exist or is not writeable, using /srv/ftp.debian.org/tmp/ instead" % (self.log_dir)) + self.log_dir = '/srv/ftp.debian.org/tmp/' - # Create the log directory if it doesn't exist - self.log_dir = Config()["Dir::UrgencyLog"] + # Open the logfile + self.log_filename = "%s/.install-urgencies-%s.new" % (self.log_dir, self.timestamp) + self.log_file = open_file(self.log_filename, 'w') - if not os.path.exists(self.log_dir) or not os.access(self.log_dir, os.W_OK): - warn("UrgencyLog directory %s does not exist or is not writeable, using /srv/ftp.debian.org/tmp/ instead" % (self.log_dir)) - self.log_dir = '/srv/ftp.debian.org/tmp/' + else: + self.log_dir = None + self.log_filename = None + self.log_file = None - # Open the logfile - self.log_filename = "%s/.install-urgencies-%s.new" % (self.log_dir, self.timestamp) - self.log_file = open_file(self.log_filename, 'w') - self.writes = 0 + self.writes = 0 def log(self, source, version, urgency): "Log an event" + + # Don't try and log if Dir::UrgencyLog is not configured + if self.log_file is None: + return + self.log_file.write(" ".join([source, version, urgency])+'\n') self.log_file.flush() self.writes += 1 def close(self): "Close a Logger object" + # Don't try and log if Dir::UrgencyLog is not configured + if self.log_file is None: + return + self.log_file.flush() self.log_file.close()