def __call__(self, report_time, frame=None): elapsed = report_time - self.start request = self.request lines = list() if not self.logged_first: if request.method == 'POST': postdata = {} postdata.update(request.POST) for key in self.tween.hide_post_vars: if key in postdata: postdata[key] = Hidden() lines.append('post: %s' % pformat(postdata)) self.logged_first = True if frame is not None: limit = self.tween.frame_limit if limit > 0: tb = StringIO() tb.write('Traceback:\n') print_stack(frame, limit=limit, file=tb) lines.append(tb.getvalue()) del frame log = self.tween.log logger_name = "slowlog.{0}".format(request.matched_route.name) page_logger = logging.getLogger(logger_name) map(page_logger.addHandler, log.handlers) lead = "{0} on {1}".format(request.method, request.url) page_logger.warn("{0}\n{1}".format(lead, '\n'.join(lines)))
def __call__(self, report_time, frame=None): elapsed = report_time - self.start env = self.environ url = construct_url(env) lines = ['request: %s %s' % (env.get('REQUEST_METHOD'), url)] if not self.logged_first: env = env.copy() for key in self.app.hide_env: if key in env: env[key] = Hidden() lines.append('environ: %s' % pformat(env)) self.logged_first = True if frame is not None: limit = self.app.frame_limit if limit > 0: tb = StringIO() tb.write('Traceback:\n') print_stack(frame, limit=limit, file=tb) lines.append(tb.getvalue()) del frame log = self.app.log log.warning("Thread %s: Started on %.1f; " "Running for %.1f secs; %s", self.ident, self.start, elapsed, '\n'.join(lines))
def __call__(self, report_time, frame=None): elapsed = report_time - self.start request = self.request lines = ['request: %s %s' % (request.method, request.url)] if not self.logged_first: if request.method == 'POST': postdata = {} postdata.update(request.POST) for key in self.tween.hide_post_vars: if key in postdata: postdata[key] = Hidden() lines.append('post: %s' % pformat(postdata)) self.logged_first = True if frame is not None: limit = self.tween.frame_limit if limit > 0: tb = StringIO() tb.write('Traceback:\n') print_stack(frame, limit=limit, file=tb) lines.append(tb.getvalue()) del frame log = self.tween.log msg = '\n'.join(lines) log.warning("Thread %s: Started on %.1f; " "Running for %.1f secs; %s", self.ident, self.start, elapsed, msg)