diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/engine/base.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/logging.py | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index d3d96a711..c13c1d946 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1010,6 +1010,7 @@ class Engine(Connectable): self.logger = logging.instance_logger(self, echoflag=echo) name = property(lambda s:sys.modules[s.dialect.__module__].descriptor()['name'], doc="String name of the [sqlalchemy.engine#Dialect] in use by this ``Engine``.") + echo = logging.echo_property() def __repr__(self): return 'Engine(%s)' % str(self.url) diff --git a/lib/sqlalchemy/logging.py b/lib/sqlalchemy/logging.py index 2dfd1e50a..2ced66109 100644 --- a/lib/sqlalchemy/logging.py +++ b/lib/sqlalchemy/logging.py @@ -75,4 +75,23 @@ def instance_logger(instance, echoflag=None): instance._should_log_debug = l.isEnabledFor(logging.DEBUG) instance._should_log_info = l.isEnabledFor(logging.INFO) return l + +class echo_property(object): + __doc__ = """when ``True``, enable log output for this element. + + This has the effect of setting the Python logging level for the + namespace of this element's class and object reference. A value + of boolean ``True`` indicates that the loglevel ``logging.INFO`` will be + set for the logger, whereas the string value ``debug`` will set the loglevel + to ``logging.DEBUG``. + """ + + def __get__(self, instance, owner): + if instance is None: + return self + else: + return instance._should_log_debug and 'debug' or (instance._should_log_info and True or False) + + def __set__(self, instance, value): + instance_logger(instance, echoflag=value)
\ No newline at end of file |
