diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-08-22 16:58:26 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-08-22 16:58:26 +0000 |
| commit | e2bb1503bf2b8ec5cd35206ec8e77f14d249f130 (patch) | |
| tree | c19682cafd196473cfa45052e1375dd4e65fa35d | |
| parent | ea44deff14a59da731ffeeafbbcf721921f1404d (diff) | |
| download | sqlalchemy-e2bb1503bf2b8ec5cd35206ec8e77f14d249f130.tar.gz | |
- restored engine.echo flag
- changelog
| -rw-r--r-- | CHANGES | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/engine/base.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/logging.py | 19 |
3 files changed, 24 insertions, 0 deletions
@@ -22,6 +22,10 @@ CHANGES - Fix to bind param processing such that "False" values (like blank strings) still get processed/encoded. +- Fix to select() "generative" behavior, such that calling column(), + select_from(), correlate(), and with_prefix() does not modify the + original select object [ticket:752] + - Added a "legacy" adapter to types, such that user-defined TypeEngine and TypeDecorator classes which define convert_bind_param() and/or convert_result_value() will continue to function. Also supports 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 |
