def __init__(self,datafile,options): self.options = options # sort logging self.options.general.logdir \ = self.__getopt(self.options.general,'logdir',"logs") self.options.general.logfile \ = self.__getopt(self.options.general,'logfile',"logfile.log") # 1.- set up logging for this particular run self.logger = set_up_logfile(self.options.general.logfile,\ name="eoldas_setup",logdir=self.options.general.logdir) try: self.setup() except: self.logger.error("Unable to access critical elements of the options. See help(eoldas_setup.setup) for details") sys.exit(-1) # read conf file(s) self.configfile = data_file #config = ConfFile(self.configfile,dirs=dirs,log_name=self.logger) if len(config.infos) == 0: self.fail = True return # not sure what to do if multiple config files??? # just take the first one at the moment self.config = config.infos[0] # update with cmd line options self.config.update(self.options,combine=True) self.logger.info("Model sd scaling by %f over that defined in the config file" % self.config.general.model_sd) self.ok = self.process_config_file()
def sortlog(self,logfile,logger,name="eoldas",logdir=None,debug=True ): ''' A safe interface to logging for passing log information between lots of classes ''' import logging import time from eoldas_Lib import set_up_logfile,dummyprint if type(self).__name__ == 'SpecialVariable' and logger != None: return logger try: if 'logger' in self.dict(): return self.logger except: pass try: if 'logger' in self.keys(): return self.logger except: pass try: if type(self).__name__ != 'SpecialVariable': this = self.logger return self.logger except: pass if logdir == None: logdir = '.' if name == None: name = type(self).__name__ + '.' + str(time.time()) if logger: if type(self).__name__ == 'SpecialVariable': return logger logger.info('Setting up logger for %s'%name) logger = logging.getLogger(name) logger.info('Set up') return logger if logfile == None or name == None: logger = ParamStorage() logger.info = lambda x:dummyprint( "Info: %s"%x) logger.debug = lambda x:dummyprint( "Debug: %s"%x) logger.error = lambda x:dummyprint( "Error: %s"%x) return logger logger = set_up_logfile(logfile,name=name,logdir=logdir,debug=debug) return logger
def startlog(self,log_terms,name=None): ''' Start the logger. This is called on initialisation and you shouldn't normally need to access it. ''' import logging from eoldas_Lib import set_up_logfile try: self.logger.shutdown() except: self.logger = ParamStorage () logfile = log_terms['logfile'] or self.options.logfile logdir = log_terms['logdir'] or self.options.logdir name = name or self.options.thisname self.logger = set_up_logfile(logfile,\ name=name,logdir=logdir)
def startlog(self, log_terms, name=None): ''' Start the logger. This is called on initialisation and you shouldn't normally need to access it. ''' import logging from eoldas_Lib import set_up_logfile try: self.logger.shutdown() except: self.logger = ParamStorage() logfile = log_terms['logfile'] or self.options.logfile logdir = log_terms['logdir'] or self.options.logdir name = name or self.options.thisname self.logger = set_up_logfile(logfile,\ name=name,logdir=logdir)