Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
def log_queries():
    total_duration = 0.0
    queries_count = 0

    chromelogger.group("SQL Queries")

    for q in get_debug_queries():
        total_duration += q.duration
        queries_count += 1
        chromelogger.info(q.statement % q.parameters)
        chromelogger.info("Runtime: {:.2f}ms".format(1000 * q.duration))

    chromelogger.info("{} queries executed in {:.2f}ms.".format(queries_count, total_duration*1000))

    chromelogger.group_end("SQL Queries")
Ejemplo n.º 3
0
def log_queries():
    total_duration = 0.0
    queries_count = 0

    chromelogger.group("SQL Queries")

    for q in get_debug_queries():
        total_duration += q.duration
        queries_count += 1
        chromelogger.info(q.statement % q.parameters)
        chromelogger.info("Runtime: {:.2f}ms".format(1000 * q.duration))

    chromelogger.info("{} queries executed in {:.2f}ms.".format(queries_count, total_duration*1000))

    chromelogger.group_end("SQL Queries")
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
def log_api_exception_to_browser_console(sender, exception, **extra):
    """Log an API exception to the browser's console."""
    if sender.debug and sender.config.get('API_LOG_EXCEPTIONS_TO_BROWSER_CONSOLE'):
        try:
            import chromelogger

            type_, value_, traceback_ = sys.exc_info()
            tbs = traceback.extract_tb(traceback_)
            exc_only = traceback.format_exception_only(type_, value_)

            group_func = chromelogger.group_collapsed
            chromelogger.group_collapsed("%cAPI Server Error:", 'color: red;', str(exc_only[-1]))
            chromelogger.log('Traceback (most recent call last):')
            for i, tb in enumerate(tbs):
                if i == len(tbs) - 1:
                    group_func = chromelogger.group  # Expand the last stack frame
                group_func('%cFile "%s", line %i, in %s', 'font-weight: normal;', tb[0], tb[1], tb[2])
                chromelogger.log(tb[3])
                chromelogger.group_end()
            chromelogger.warn(''.join(exc_only))
            chromelogger.group_end()
        except Exception:
            pass  # Failures here should not prevent the API error response
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
def log_queries():
    total_duration = 0.0
    queries_count = 0

    # 开始
    console.group("SQL Queries")
    ######################################################################

    # 记录此次请求,
    # 执行了几次sql,总共花了多长的执行时间,以及每次查询的内容,参数和时间

    for q in get_debug_queries():
        # 每次查询的内容,参数和时间
        total_duration += q.duration
        queries_count += 1
        console.info(q.statement % q.parameters)
        console.info("Runtime: {:.2f}ms".format(1000 * q.duration))

    # 执行了几次sql,总共花了多长的执行时间,
    console.info("{} queries executed in {:.2f}ms.".format(
        queries_count, total_duration * 1000))

    ######################################################################
    console.group_end("SQL Queries")