See https://stackoverflow.com/a/76498428/1952977

On Monday, May 10, 2010 at 8:05:40 AM UTC+4 Michael Bayer wrote:

> The issue is that you have configured two handlers by setting 
> handler=consoleHandler in two places, it should only be on "root" typically.
>
> engine.echo uses Python logging underneath and calling engine.echo as a 
> getter calls logger.isEnabledFor(logging.INFO), so that indicates nothing 
> about the issue.
>
>
> On May 9, 2010, at 10:15 PM, hal_robertson wrote:
>
> > Hi there
> > 
> > I have an application that uses the Python logging facility. The
> > logging system is configured through a config file
> > 
> > I would like to be able to adjust sqlalchemy logging through the
> > config file
> > 
> > However, it seems when I configure the logging system it turns
> > sqlalchemy echo to True on my engine, resulting in two log entries for
> > each sqlalchemy output.
> > 
> > How do I configure the logging system properly in an external config
> > file for sqlalchemy without the double log entries? Or is this not
> > possible? Hopefully I've made a simple mistake that's easy to fix.
> > 
> > thanks
> > 
> > Hal
> > 
> > Test program, config file, and output below:
> > 
> > ---- python, sqlalchemy versions:
> > 
> > Python 2.6.5 (r265:79063, Apr 6 2010, 18:52:40)
> > [GCC 4.2.1 (Apple Inc. build 5646)] on darwin
> > Type "help", "copyright", "credits" or "license" for more information.
> >>>> import sqlalchemy
> >>>> sqlalchemy.__version__
> > '0.6.0'
> > 
> > --- test_logger.py:
> > 
> > from sqlalchemy import MetaData, create_engine, Table, Column, String,
> > Integer
> > from sqlalchemy.orm import sessionmaker, mapper
> > import logging, logging.config
> > 
> > engine = create_engine('sqlite:///dummy.db')
> > # reports engine.echo is False
> > print 'engine.echo==%s' % engine.echo
> > 
> > # initializing logging after create_engine sets engine.echo to true
> > logging.config.fileConfig('config/logging.conf')
> > log = logging.getLogger('root')
> > log.debug("Logging initialized")
> > log.debug("Unexpected: engine.echo==%s",engine.echo)
> > 
> > ## from here on out all sqlalchemy logs are double-logged :(
> > 
> > # If I explicitly force engine.echo back to False nothing gets logged
> > from sqlalchemy
> > # engine.echo = False
> > 
> > metadata = MetaData()
> > Session = sessionmaker(bind=engine)
> > session = Session()
> > 
> > # creating a table
> > users_table = Table('users', metadata,
> > Column('user_id', Integer, primary_key=True),
> > Column('user_name', String(40))
> > )
> > metadata.create_all(engine)
> > 
> > #create a holding class
> > class User(object):
> > def __repr__(self):
> > return '%s(%r,%r)' % (
> > 
> > self.__class__.__name__,self.user_name,self.user_id)
> > 
> > # map the holding class to the table definition
> > mapper(User, users_table)
> > 
> > #create an instance of the class
> > u1 = User()
> > u1.user_name='bonose'
> > 
> > session.add(u1)
> > session.commit()
> > 
> > 
> > 
> > --- config/logging.conf
> > 
> > [loggers]
> > keys=root, sqlalchemy
> > 
> > [handlers]
> > keys=consoleHandler
> > 
> > [formatters]
> > keys=simpleFormatter
> > 
> > [logger_root]
> > level=DEBUG
> > handlers=consoleHandler
> > 
> > [logger_sqlalchemy]
> > level=INFO
> > handlers=consoleHandler
> > qualname=sqlalchemy.engine
> > 
> > [handler_consoleHandler]
> > class=StreamHandler
> > level=DEBUG
> > formatter=simpleFormatter
> > args=(sys.stdout,)
> > 
> > [formatter_simpleFormatter]
> > format=[%(levelname)s] %(asctime)s (%(name)s) %(message)s
> > datefmt=
> > 
> > 
> > ---- OUTPUT
> > ---- If I run the above program with the above config file I get
> > double log entires to stdout:
> > 
> > engine.echo==False
> > [DEBUG] 2010-05-09 23:03:41,860 (root) Logging initialized
> > [DEBUG] 2010-05-09 23:03:41,860 (root) Unexpected: engine.echo==True
> > [INFO] 2010-05-09 23:03:41,862 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) PRAGMA table_info("users")
> > [INFO] 2010-05-09 23:03:41,862 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) PRAGMA table_info("users")
> > [INFO] 2010-05-09 23:03:41,862 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ()
> > [INFO] 2010-05-09 23:03:41,862 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ()
> > [INFO] 2010-05-09 23:03:41,863 (sqlalchemy.engine.base.Engine.
> > 0x...ded0)
> > CREATE TABLE users (
> > user_id INTEGER NOT NULL,
> > user_name VARCHAR(40),
> > PRIMARY KEY (user_id)
> > )
> > 
> > 
> > [INFO] 2010-05-09 23:03:41,863 (sqlalchemy.engine.base.Engine.
> > 0x...ded0)
> > CREATE TABLE users (
> > user_id INTEGER NOT NULL,
> > user_name VARCHAR(40),
> > PRIMARY KEY (user_id)
> > )
> > 
> > 
> > [INFO] 2010-05-09 23:03:41,863 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ()
> > [INFO] 2010-05-09 23:03:41,863 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ()
> > [INFO] 2010-05-09 23:03:41,864 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) COMMIT
> > [INFO] 2010-05-09 23:03:41,864 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) COMMIT
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) BEGIN
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) BEGIN
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) INSERT INTO users (user_name) VALUES (?)
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) INSERT INTO users (user_name) VALUES (?)
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ('bonose',)
> > [INFO] 2010-05-09 23:03:41,866 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) ('bonose',)
> > [INFO] 2010-05-09 23:03:41,867 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) COMMIT
> > [INFO] 2010-05-09 23:03:41,867 (sqlalchemy.engine.base.Engine.
> > 0x...ded0) COMMIT
> > 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "sqlalchemy" group.
> > To post to this group, send email to sqlal...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> sqlalchemy+...@googlegroups.com.
> > For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> > 
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlal...@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/ca85d4dd-d4a0-4b3c-9471-643efdad2d3an%40googlegroups.com.

Reply via email to