the echo flag doesn't support customization like this. if you want to use your own handlers then you should use traditional logging steps; there's nothing the echo flag does that can't be accomplished using the logging API directly.
On Sun, Jun 13, 2021, at 10:24 PM, [email protected] <mailto:jca...%40gmail.com> wrote: > Hi, > Thank you for the response. The line I mentioned calls _add_default_handler > <https://github.com/sqlalchemy/sqlalchemy/blob/c2cad1f97c51c8a2a6ad5d371ece7bcd9c7ffcf9/lib/sqlalchemy/log.py#L34> > if it evaluates to true which attaches a stream handler set to sys.stdout. > > That's the crux of the concern, it checks its own logging namespace that in > most cases won't have a handler so it most likely (but not always) will add a > console stream handler all the time. > > I do want to use echo as I want the query and bind parameters on occasion, I > just don't think the stream handler is appropriate. > > The docs mentioned that you should adjust 'sqlalchemy.engine', however that's > not the namespace that gets a console stream handler, it is actually > 'sqlalchemy.engine.Engine'. After seeing this discrepancy, I was concerned > about what I may overlook and end up finding out the hard way. > > Thanks, > jlc > > On Sunday, June 13, 2021 at 1:06:11 PM UTC-6 Mike Bayer wrote: >> __ >> the line you refer towards involves a flag called "echo", which is described >> at https://docs.sqlalchemy.org/en/14/core/engines.html#more-on-the-echo-flag >> and is entirely optional. if you don't use the echo flag, SQLAlchemy's >> logging behavior is completely traditional, with the caveat that the Engine, >> Connection and Pool objects will check the level of loggers before opting to >> send out logging.info() and logging.debug() calls as there is some >> additional formatting expense for some of these calls. >> >> I'm not familiar with what you mean by "IO emitted to the console streams >> breaks calling code", SQLAlchemy doesn't emit any IO that it isn't >> instructed to nor does it set up any handlers if you aren't using the "echo" >> flag. >> >> >> >> >> On Sun, Jun 13, 2021, at 1:14 PM, [email protected] wrote: >>> Hello everyone, >>> After reviewing the handler logic, I am not clear that it implements logging >>> within the pattern guidelines defined by the base logging implementation. >>> >>> In log.py#L103 >>> <https://github.com/sqlalchemy/sqlalchemy/blob/c2cad1f97c51c8a2a6ad5d371ece7bcd9c7ffcf9/lib/sqlalchemy/log.py#L103>, >>> the level and existence of at least one handler are checked. >>> >>> I only have a handler added to a root logger that I don't control, and we >>> rely >>> on ancestral propagation. >>> >>> The concern I have is due to any IO emitted to the console streams breaks >>> the calling code that I don't control. With this pattern, I have to >>> preemptively >>> add null handlers to every logger, and if I miss one and it manifests in >>> production, >>> I'll have a problem. >>> >>> Anyone have any thoughts around this? >>> >>> Thanks, >>> jlc >>> >>> >>> >>> -- >>> SQLAlchemy - >>> The Python SQL Toolkit and Object Relational Mapper >>> >>> http://www.sqlalchemy.org/ >>> >>> To post example code, please provide an MCVE: Minimal, Complete, and >>> Verifiable Example. See http://stackoverflow.com/help/mcve for a full >>> description. >>> --- >>> You received this message because you are subscribed to the Google Groups >>> "sqlalchemy" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sqlalchemy/80cade67-c6ed-41a7-a1a2-ba1fdb36b8aen%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/sqlalchemy/80cade67-c6ed-41a7-a1a2-ba1fdb36b8aen%40googlegroups.com?utm_medium=email&utm_source=footer>. >> > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/58a12078-7a75-473a-9492-d9927580dd1en%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy/58a12078-7a75-473a-9492-d9927580dd1en%40googlegroups.com?utm_medium=email&utm_source=footer>. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/08709ee1-f92b-44dc-8ac7-6843dc68aab6%40www.fastmail.com.
