def chrome_log(response): request_duration = (time.time() - g.start_time) * 1000 queries_duration = g.get('queries_duration', 0.0) queries_count = g.get('queries_count', 0) group_name = '{} {} ({}, {:.2f}ms runtime, {} queries in {:.2f}ms)'.format( request.method, request.path, response.status_code, request_duration, queries_count, queries_duration) chromelogger.group_collapsed(group_name) endpoint = (request.endpoint or 'unknown').replace('.', '_') chromelogger.info('Endpoint: {}'.format(endpoint)) chromelogger.info('Content Type: {}'.format(response.content_type)) chromelogger.info('Content Length: {}'.format(response.content_length or -1)) log_queries() chromelogger.group_end(group_name) header = chromelogger.get_header() if header is not None: response.headers.add(*header) return response
async def __call__(self, scope, receive, send): # headers = dict(scope["headers"]) if scope["type"] in ("http"): header = console.get_header() # if header is not None: # headers.update({header[0]: header[1]}) await self.app(scope, receive, send)
def log_chrome_console_messages(response): if app.config.get('API_LOG_EXCEPTIONS_TO_BROWSER_CONSOLE', False): import chromelogger header = chromelogger.get_header() if header is not None: response.headers.add(header[0], header[1]) return response
def chrome_log(response): request_duration = (time.time() - g.start_time) * 1000 # g程序上下文,存在于一次请求的处理的生命周期里 # database的监听器,每次查询都会记录进g # 下次请求g,重置 # D:\redash - master\redash\metrics\database.py # g.setdefault('queries_count', 0) # g.setdefault('queries_duration', 0) # g.queries_count += 1 # g.queries_duration += duration queries_duration = g.get('queries_duration', 0.0) queries_count = g.get('queries_count', 0) # 记录整个请求的时间 # get /resource (200, 100.10ms runtime, 5 queries in 50ms) group_name = '{} {} ({}, {:.2f}ms runtime, {} queries in {:.2f}ms)'.format( request.method, request.path, response.status_code, request_duration, queries_count, queries_duration) # 开始 console.group_collapsed(group_name) ###################################################################### endpoint = (request.endpoint or 'unknown').replace('.', '_') console.info('Endpoint: {}'.format(endpoint)) console.info('Content Type: {}'.format(response.content_type)) console.info('Content Length: {}'.format(response.content_length or -1)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ log_queries() console.group_end(group_name) # 结束 ###################################################################### ## 固定搭配??? header = console.get_header() if header is not None: response.headers.add(*header) return response
def debug(error=None): if hasattr(error, 'traceback'): msg = error.traceback if not msg: # Bottle raised exception msg = error.body else: msg = error if console: header = console.get_header() if header: k,v = header response.headers[k] = v if error: if request.is_xhr and console: console.log(msg) return { 'error': True } else: return '<pre>%s</pre>' % html_escape(msg)
def hello(): console.log('Hello console!') console.get_header() return "Hello World!"
def chromelogger(response): header = console.get_header() if header is not None: response.headers.add(*header) return response