From e85f246469d6dbf5c9f801e20babd7d13b2c05f9 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Sat, 24 Sep 2011 03:58:52 +0200 Subject: [PATCH] [IMP] sql_db: auto-exception-logging can now be turned off per cursor, not only per query bzr revid: odo@openerp.com-20110924015852-9vru7cdsmzbvault --- openerp/sql_db.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openerp/sql_db.py b/openerp/sql_db.py index 79606b9101c..8038c39486d 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -183,6 +183,8 @@ class Cursor(object): self.__caller = False self.__closer = False + self._default_log_exceptions = True + def __del__(self): if not self.__closed: # Oops. 'self' has not been closed explicitly. @@ -199,7 +201,7 @@ class Cursor(object): self._close(True) @check - def execute(self, query, params=None, log_exceptions=True): + def execute(self, query, params=None, log_exceptions=None): if '%d' in query or '%f' in query: self.__logger.warn(query) self.__logger.warn("SQL queries cannot contain %d or %f anymore. " @@ -212,11 +214,11 @@ class Cursor(object): params = params or None res = self._obj.execute(query, params) except psycopg2.ProgrammingError, pe: - if log_exceptions: + if self._default_log_exceptions or log_exceptions: self.__logger.error("Programming error: %s, in query %s", pe, query) raise except Exception: - if log_exceptions: + if self._default_log_exceptions or log_exceptions: self.__logger.exception("bad query: %s", self._obj.query or query) raise