X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdaklog.py;h=a698cbc53fc5d754fb3ec2392aab73b299c3e1eb;hb=391f5ec09a119131dc846b796ca791f4cecc69e4;hp=7ececa560ebc74f5405dfc8f73a571b77691a9ca;hpb=d7c62d1659a2078584a1158466d4abe13c1f4ff3;p=dak.git diff --git a/daklib/daklog.py b/daklib/daklog.py index 7ececa56..a698cbc5 100644 --- a/daklib/daklog.py +++ b/daklib/daklog.py @@ -24,6 +24,7 @@ Logging functions ################################################################################ +import fcntl import os import pwd import time @@ -55,7 +56,7 @@ class Logger(object): logdir = Config()["Dir::Log"] if not os.path.exists(logdir): umask = os.umask(00000) - os.makedirs(logdir, 02775) + os.makedirs(logdir, 0o2775) os.umask(umask) # Open the logfile @@ -65,7 +66,7 @@ class Logger(object): if debug: logfile = sys.stderr else: - umask = os.umask(00002) + umask = os.umask(0o0002) logfile = utils.open_file(logfilename, 'a') os.umask(umask) @@ -80,13 +81,14 @@ class Logger(object): details.insert(0, timestamp) # Force the contents of the list to be string.join-able details = [ str(i) for i in details ] + fcntl.lockf(self.logfile, fcntl.LOCK_EX) # Write out the log in TSV self.logfile.write("|".join(details)+'\n') # Flush the output to enable tail-ing self.logfile.flush() + fcntl.lockf(self.logfile, fcntl.LOCK_UN) def close (self): "Close a Logger object" self.log(["program end"]) - self.logfile.flush() self.logfile.close()