#!/usr/bin/python # -*- coding: utf-8 -*- """ Template dédiée à la création de scripts python Auteur : Julien Manteau """ # import from optparse import OptionParser import logging import logging.handlers import os nomScript= "Script" class Script: def __init__(self,journal): self.journal= journal def launch(self,options): self.journal.info("Lancement du Script") self.journal.debug("Non visible en quiet") def printColour(self,colour): self.journal.info("La couleur est %s" % colour) def printPoint(self,coords): self.journal.info("Les coords sont x:%i y:%i" % (coords[0],coords[1])) class Journal: ############################################################################### def __init__(self,level): self.journal = logging.getLogger("Log de %s" % nomScript) self.journal.setLevel(level) # create console handler and set level to debug ch = logging.StreamHandler() ch.setLevel(level) # create formatter formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") # add formatter to ch ch.setFormatter(formatter) # add ch to logger self.journal.addHandler(ch) self.journal = logging.getLogger("Log de %s" % nomScript) self.journal.setLevel(level) # Add the log message handler to the logger pathlog= "/var/tmp/log" if not os.path.exists (pathlog): os.makedirs (pathlog) LOG_FILENAME = "%s/%s.log" % (pathlog,nomScript) handler = logging.handlers.RotatingFileHandler( LOG_FILENAME, maxBytes=200000, backupCount=5) formatter2 = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter2) self.journal.addHandler(handler) def setLevel(self,level): self.journal.setLevel(level) def info(self,message): self.journal.info(message) def debug(self,message): self.journal.debug(message) def warn(self,message): self.journal.warn(message) def critical(self,message): self.journal.critical(message) def error(self,message): self.journal.error(message) # Rappel #journal.debug("debug message") #journal.info("info message") #journal.warn("warn message") #journal.error("error message") #journal.critical("critical message") ############################################################################### #Fonction principale def main(): usage= "L'aide est disponible avec -h or --help" # http://docs.python.org/library/optparse.html parser = OptionParser(usage=usage) parser.add_option("-v", "--verbose",action="store_true", dest="verbose",default=True,help="Mode verbeux") parser.add_option("-q", "--quiet",action="store_false", dest="verbose",help="Mode silencieux") parser.add_option("-c","--colour",action="store",dest="colour",help="Affiche la couleur entree") parser.add_option("-p","--point",type="float",nargs=2,dest="point",help="Coordonnees d'un point") (options, args) = parser.parse_args() level = logging.DEBUG journal = Journal(level) script= Script(journal) if not options.verbose: # logger en mode quiet journal.setLevel(logging.INFO) script.launch(options) elif options.colour: script.printColour(options.colour) elif options.point: script.printPoint(options.point) else: #mode normal script.launch(options) if __name__ == "__main__": main()