def analyze_line(self, line):
        line = line.strip()
        result = self.log_parser.parse(line)
        # Ignore invalid log
        if not result:
            return
        if self.start_from_datetime and result['request_datetime'] <= self.start_from_datetime:
            return

        self.requests_counter['normal'] += 1

        if not self.datetime_range[0]:
            self.datetime_range[0] = result['request_datetime']
        self.datetime_range[1] = result['request_datetime']
        if result['resp_time'] < self.min_msecs:
            return

        resp_time = result['resp_time']

        # Use url_classifier to classify url
        matched_url_rule = self.url_classifier.classify(result['url_path'])

        big_d = self.data.setdefault((result['method'], matched_url_rule), {
            'urls': {},
            'duration_agr_data': ValuesAggregation(),
        })

        big_d['duration_agr_data'].add_value(resp_time)
        big_d['urls'].setdefault(result['url'], ValuesAggregation()).add_value(resp_time)
        
        self.requests_counter['slow'] += 1
        self.total_slow_duration += resp_time
dataset/ETHPy150Open piglei/uwsgi-sloth/uwsgi_sloth/analyzer.py/LogAnalyzer.analyze_line/original