Отключение ведения журнала БД Snowflake при сохранении уровня журнала как DEBUG

Можно ли отключить ведение журнала Snowflake SQL, которое регистрирует начало и конец соединения с БД и все выполняемые запросы, сохраняя при этом logging.basicConfig(level=logging.INFO) для отладки моей разработки.

Может быть, это не относится к Snowflake, а к общему соединению с БД из Python?

Я использую snowflake-connector-python версии 1.8.1

Пример упрощенного журнала, который у меня сейчас есть.

2019-06-10 16:27:10,015 INFO: /*Need this line*/

2019-06-10 16:27:10,015 INFO: Snowflake Connector for Python Version: 1.8.1, Python Version: 3.7.3, Platform: Windows-7-6.1.7601-SP1
2019-06-10 16:27:10,015 INFO: This connection is in OCSP Fail Open Mode. TLS Certificates would be checked for validity and revocation status. Any other Certificate Revocation related exceptions or OCSP Responder failures would be disregarded in favor of connectivity.
2019-06-10 16:27:10,020 INFO: Starting new HTTPS connection (1): xyz.snowflakecomputing.com
2019-06-10 16:27:11,227 INFO: query: [USE WAREHOUSE test_wh]
2019-06-10 16:27:11,481 INFO: query execution done
2019-06-10 16:27:11,481 INFO: query: [SELECT COLUMN_NAME FROM DB.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_CATALOG =...]
2019-06-10 16:27:12,830 INFO: query execution done
2019-06-10 16:27:12,830 INFO: fetching data done
2019-06-10 16:27:12,830 INFO: closed
2019-06-10 16:27:13,185 INFO: /*Need this line*/
2019-06-10 16:27:13,581 INFO: /*Need this line*/
2019-06-10 16:27:14,604 INFO: /*Need this line*/

person Vinay    schedule 10.06.2019    source источник


Ответы (3)


В вашем модуле Python, который импортирует snowflake.connector, прежде чем вызывать какие-либо методы соединителя, добавьте

logging.getLogger('snowflake.connector').setLevel(logging.WARNING)

чтобы он регистрировал только предупреждения или более высокие уровни.

person John Velonis    schedule 10.06.2019

Я считаю, что решение @john Velonis не совсем избавляет от всех сообщений о снежинках. Я все еще получал такие сообщения:

2020-03-26 18:03:04    DEBUG:  network._request_exec:805 - SUCCESS
2020-03-26 18:03:04    DEBUG:  network._use_requests_session:944 - Active requests sessions: 0, idle: 1
2020-03-26 18:03:04    DEBUG:  network._post_request:533 - ret[code] = None, after post request
2020-03-26 18:03:04    DEBUG:   cursor.execute:543 - sfqid: 0193261b-0310-8c37-0003-c9033ae3696a
2020-03-26 18:03:04     INFO:   cursor.execute:545 - query execution done
2020-03-26 18:03:04    DEBUG:   cursor.execute:547 - SUCCESS
2020-03-26 18:03:04    DEBUG:   cursor.execute:551 - PUT OR GET: None
2020-03-26 18:03:04    DEBUG:   cursor._init_result_and_meta:611 - Query result format: arrow
2020-03-26 18:03:04    DEBUG:   cursor._init_result_and_meta:631 - Batches read: 8
2020-03-26 18:03:04    DEBUG:   cursor.fetchone:824 - Arrow BatchSize: 8
2020-03-26 18:03:04    DEBUG:   cursor.fetchone:824 - Arrow chunk info: batchCount 8, columnCount 8, use_numpy: 0
2020-03-26 18:03:04    DEBUG:   cursor.fetchone:824 - Current batch index: 0, rows in current batch: 48
2020-03-26 18:03:04    DEBUG:   cursor.fetchone:824 - Current batch index: 1, rows in current batch: 52
2020-03-26 18:03:04    DEBUG:   cursor.fetchone:824 - Current batch index

Я думаю, что они взяты из некоторого код CPP здесь< /а>. Чтобы их отключить, мне также пришлось установить snowflake.connector.CArrowIterator на более высокий уровень журнала. Я использовал такой код:

import logging
for name in logging.Logger.manager.loggerDict.keys():
    if 'snowflake' in name:
        logging.getLogger(name).setLevel(logging.WARNING)
        logging.getLogger(name).propagate = False
person hamx0r    schedule 26.03.2020

попробуй это

logging.getLogger('snowflake.connector.connection').propagate=False
person Ali    schedule 31.08.2020