summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/engine/base.py1
-rw-r--r--lib/sqlalchemy/logging.py19
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