首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从sqlalchemy中完全禁用日志

从sqlalchemy中完全禁用日志
EN

Stack Overflow用户
提问于 2021-06-29 05:54:34
回答 1查看 50关注 0票数 0

我正在尝试从sqlalchemy中完全关闭登录。我正在为Flask和来自sqlalchemy/engine/base.py、sqlalchemy/engine/impl.py的错误创建自定义日志记录框架。我试过了:logging.getLogger('SQLAlchemy.pool.base').addHandler(logging.NullHandler())logging.getLogger('SQLAlchemy.pool.impl').addHandler(logging.NullHandler())

但它们没有工作,因为它们传统上没有利用python日志记录。而不是让logger=logging.getLogger(__name__)从库中的日志文件导入,所以我尝试了:

logging.getLogger('sqlalchemy.log').addHandler(logging.NullHandler()),但这也不起作用。

我尝试了以下方法,但也没有成功:

How to turn sqlalchemy logging off completely

https://docs.sqlalchemy.org/en/14/core/engines.html#more-on-the-echo-flag

代码如下:

代码语言:javascript
运行
复制
from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL

@app.route("/")
@app.route("/home")
def home():
    engine = create_engine('snowflake://{user}:{password}@{account}/'.format(user='user-name', password='password', account='account'), echo=False, echo_pool=False)

    try:
        connection = engine.connect()
        results = connection.execute('select current_version()').fetchone()
        print(results[0])
        connection.close()
    finally:
        engine.dispose()

    return render_template('home.html', posts=posts)

下面是错误:

代码语言:javascript
运行
复制
raceback (most recent call last):
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 606, in __connect
    pool.logger.debug("Created new connection %r", connection)
TypeError: debug() takes 1 positional argument but 3 were given

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "sample_projects/app.py", line 69, in home
    connection = engine.connect()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3165, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 96, in __init__
    else engine.raw_connection()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3244, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3211, in _wrap_pool_connect
    return fn()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 307, in connect
    return _ConnectionFairy._checkout(self)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 767, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 425, in checkout
    rec = pool._do_get()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 146, in _do_get
    self._dec_overflow()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
    return self._create_connection()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 253, in _create_connection
    return _ConnectionRecord(self)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 368, in __init__
    self.__connect()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 611, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 84, in __exit__
    compat.raise_(value, with_traceback=traceback)
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 611, in __connect
    pool.logger.debug("Error on connect(): %s", e)
TypeError: debug() takes 1 positional argument but 3 were given

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 2088, in __call__
    return self.wsgi_app(environ, start_response)
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 2073, in wsgi_app
    response = self.handle_exception(e)
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 2070, in wsgi_app
    response = self.full_dispatch_request()
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 1515, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 1513, in full_dispatch_request
    rv = self.dispatch_request()
  File "sample_projects/env/lib/python3.8/site-packages/flask/app.py", line 1499, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "sample_projects/app.py", line 76, in home
    engine.dispose()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2920, in dispose
    self.pool.dispose()
  File "sample_projects/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 195, in dispose
    self.logger.info("Pool disposed. %s", self.status())
TypeError: info() takes 1 positional argument but 3 were given

如果您有任何见解,我将不胜感激。如果我忘了说什么,可以问我一些问题。如果你读到这里,谢谢你,哈哈!

EN

回答 1

Stack Overflow用户

发布于 2021-06-29 06:08:02

以下代码不起作用,因为您在现有处理程序的基础上添加了一个处理程序。

代码语言:javascript
运行
复制
logger = logging.getLogger('sqlalchemy')
logger.addHandler(logging.NullHandler())  # creates an additional log handler

您实际要做的是修改现有的处理程序。

代码语言:javascript
运行
复制
logger = logging.getLogger('sqlalchemy')
logger.setLevel(logging.ERROR)  # modifies the current log handler
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68170399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档