X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=qaapi%2Fqa%2Flogger.py;h=7a139e189d2a92916bd6eb4c096cfc39fb19a660;hb=d502e1d5482497fd083e028d21f25091a469355b;hp=1f88eca8398e15c24569d2045c6bf634c96e4105;hpb=3f5f1632d6d78878e4a30cfc6ea012c9bad0f674;p=tests.git diff --git a/qaapi/qa/logger.py b/qaapi/qa/logger.py index 1f88eca..7a139e1 100644 --- a/qaapi/qa/logger.py +++ b/qaapi/qa/logger.py @@ -1,6 +1,8 @@ import os import traceback import time +import sys +import commands class Logfile: """ @@ -9,9 +11,48 @@ class Logfile: logfile = Logfile('filename') print >> logfile, data """ - def __init__(self, filename): + def __init__(self, filename, date_in_filename = True): + + # whats the date + localtime = time.localtime() + (year, month, day) = localtime[:3] + date = "%(year)s.%(month)s.%(day)s" % locals() + + # append date to filename + if date_in_filename: + if filename.find(".log") > -1: + filename = filename.split(".log")[0] + filename = "%(filename)s-%(date)s.log" % locals() + + filename_parts = filename.split(os.sep) + # Add directory (qaapi) to files path + if 'qaapi' not in filename_parts: + filename_parts.insert(len(filename_parts)-1, 'qaapi') + # Add directory(today's date) to file's path + if date not in filename_parts: + filename_parts.insert(len(filename_parts)-1, date) + + # Make sure file's parent directory exists + self.dir = filename_dir = os.sep + os.sep.join(filename_parts[:-1]) + os.sep + filename = os.sep + os.sep.join(filename_parts) + (status, output) = commands.getstatusoutput("mkdir -p %(filename_dir)s" % locals()) self.filename = filename + def rotate(self): + if os.path.isfile(self.filename): + (status, output) = utils.commands("ls %s*" % self.filename) + files = output.split("\n") + files.sort() + lastfile = files[-1:][0] + index = lastfile.split(self.logfile.filename)[1].replace(".", "") + + if not index: + index = "1" + else: + index = str(int(index) +1) + utils.commands("mv %s %s.%s" % (self.filename, self.filename, index)) + + def write(self, data): try: fd = os.open(self.filename, os.O_WRONLY | os.O_CREAT | os.O_APPEND, 0644) @@ -21,7 +62,8 @@ class Logfile: sys.stderr.write(data) sys.stderr.flush() - +log_filename = '/var/log/qaapi.log' +logfile = Logfile(log_filename) def log(method, method_name = None, \ log_filename = 'system.log', errorlog_filename = 'system_error.log'): @@ -61,3 +103,4 @@ def log(method, method_name = None, \ raise return wrapper +