def addHandler(hl): for logger in Logger.manager.loggerDict: try: if getLogger(logger)._rule == rule: getLogger(logger).addHandler(hl) except: pass return Logger.addHandler(hl)
def get_logger_by_rule(rule): for logger in Logger.manager.loggerDict: try: if getLogger(logger)._rule == rule: return getLogger(logger) except: pass return current_app.logger
def _add_dynamics_logger(self): current_app.logger.debug('start init of logManager') #reset level of logger current_app.logger.debug('reset level of logger') if not self._level: levels = [current_app.logger.getEffectiveLevel(),] levels = levels + [h.level for h in current_app.logger.handlers] self._level = max(levels) current_app.logger.setLevel(self._level) for h in current_app.logger.handlers: h.setLevel(DEBUG) #dynamic logger current_app.logger.debug('add dynamic logger') no = 0 for rule in current_app.url_map.iter_rules(): current_app.logger.debug(rule.rule) l = getLogger("logManager-%s" % no) l.setLevel(current_app.logger.level) l._rule = rule.rule for h in current_app.logger.handlers: l.addHandler(h) no = no +1 #change current_app.logger current_app.logger.debug = debug current_app.logger.info = info current_app.logger.critical = critical current_app.logger.warning = warning current_app.logger.error = error current_app.logger.addHandler = addHandler current_app.logger.debug('end init of LogManager')
def level(self, level): """ Sets the level of this Logger. level of logger :param level: The level of this Logger. :type level: str """ if level is None: raise ValueError("Invalid value for `level`, must not be `None`") if level not in loggingLevel.keys(): raise ValueError("Invalid value for `level`, not list in %s" % ','.join(loggingLevel.keys())) if self.id is not None: getLogger(self.id).setLevel(loggingLevel[level]) self._level = level
def rule(self, rule): """ Sets the rule of this Logger. rule of logger :param rule: The rule of this Logger. :type rule: str """ if self.id is not None: if '_rule' in getLogger( self.id).__dict__ and getLogger(self.id)._rule != rule: raise ValueError( "Invalid value for `rule`, you can not change value of rule: %s" % getLogger(self.id)._rule) getLogger(self.id)._rule = rule self._rule = rule
def id(self, id): """ Sets the id of this Logger. id of logger :param id: The id of this Logger. :type id: str """ if id is None: raise ValueError("Invalid value for `id`, must not be `None`") if id not in loggerDict: raise NotFoundLoggerError(id) self._id = id if self._level: self.level = self._level else: self.level = loggingLevel[getLogger(id).level] if self._rule: self.rule = self._rule else: self.rule = '_rule' in getLogger(id).__dict__ and getLogger( id)._rule or None