예제 #1
0
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) 
예제 #2
0
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
예제 #3
0
 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')
예제 #4
0
    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
예제 #5
0
    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
예제 #6
0
    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