# -*- coding: ISO-8859-1 -*- ################################## # @program smon # @description simulation monitor # @copyright Copyright “(c)2009 Centre National de la Recherche Scientifique CNRS. # All Rights Reserved” # @svn_file $Id: logger.py 2010 2012-06-18 14:00:35Z jripsl $ # @version $Rev: 2010 $ # @lastrevision $Date: 2012-06-18 16:00:35 +0200 (lun. 18 juin 2012) $ # @license CeCILL (http://dods.ipsl.jussieu.fr/jripsl/smon/LICENSE) ################################## import logging def create_logger(name,fullpath_filename): # new logger instance logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) # create associated file fh = logging.FileHandler(fullpath_filename) fh.setLevel(logging.DEBUG) # create formatter formatter = logging.Formatter('%(asctime)-15s %(code)s - %(message)s') fh.setFormatter(formatter) # binding logger.addHandler(fh) return logger # this class must be inherited by classes which need logging feature class Logger(): _logger=None @classmethod def log_and_stdout(cls,errcode,errmsg): cls.stdout(errcode,errmsg) cls.log(errcode,errmsg) @classmethod def stdout(cls,errcode,errmsg): print "%s - %s"%(errcode,errmsg) @classmethod def log(cls,errcode,errmsg): cls._logger.info(errmsg,extra={'code' : errcode})