[imp] remove crappy log() function from db_sql, migrate to logging's Logger
bzr revid: xmo@tinyerp.com-20100302095840-bavk87douskr01af
This commit is contained in:
parent
9150c0695f
commit
f8ef7598b6
|
@ -21,6 +21,7 @@
|
|||
|
||||
__all__ = ['db_connect', 'close_db']
|
||||
|
||||
import logging
|
||||
import netsvc
|
||||
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_SERIALIZABLE
|
||||
from psycopg2.psycopg1 import cursor as psycopg1cursor
|
||||
|
@ -60,15 +61,11 @@ import re
|
|||
re_from = re.compile('.* from "?([a-zA-Z_0-9]+)"? .*$');
|
||||
re_into = re.compile('.* into "?([a-zA-Z_0-9]+)"? .*$');
|
||||
|
||||
|
||||
def log(msg, lvl=netsvc.LOG_DEBUG):
|
||||
logger = netsvc.Logger()
|
||||
logger.notifyChannel('sql', lvl, msg)
|
||||
|
||||
sql_counter = 0
|
||||
|
||||
class Cursor(object):
|
||||
IN_MAX = 1000
|
||||
__logger = logging.getLogger('db.cursor')
|
||||
|
||||
def check(f):
|
||||
@wraps(f)
|
||||
|
@ -102,15 +99,16 @@ class Cursor(object):
|
|||
# pool, preventing some operation on the database like dropping it.
|
||||
# This can also lead to a server overload.
|
||||
msg = "Cursor not closed explicitly\n" \
|
||||
"Cursor was created at %s:%s" % self.__caller
|
||||
log(msg, netsvc.LOG_WARNING)
|
||||
"Cursor was created at %s:%s"
|
||||
self.__logger.warn(msg, *self.__caller)
|
||||
self.close()
|
||||
|
||||
@check
|
||||
def execute(self, query, params=None):
|
||||
if '%d' in query or '%f' in query:
|
||||
log(query, netsvc.LOG_WARNING)
|
||||
log("SQL queries cannot contain %d or %f anymore. Use only %s", netsvc.LOG_WARNING)
|
||||
self.__logger.warn(query)
|
||||
self.__logger.warn("SQL queries cannot contain %d or %f anymore. "
|
||||
"Use only %s")
|
||||
if params:
|
||||
query = query.replace('%d', '%s').replace('%f', '%s')
|
||||
|
||||
|
@ -124,16 +122,15 @@ class Cursor(object):
|
|||
logger= netsvc.Logger()
|
||||
logger.notifyChannel('sql_db', netsvc.LOG_ERROR, "Programming error: %s, in query %s" % (pe, query))
|
||||
raise
|
||||
except Exception, e:
|
||||
log("bad query: %s" % self._obj.query)
|
||||
log(e)
|
||||
except Exception:
|
||||
self.__logger.exception("bad query: %s", self._obj.query)
|
||||
raise
|
||||
|
||||
if self.sql_log:
|
||||
delay = mdt.now() - now
|
||||
delay = delay.seconds * 1E6 + delay.microseconds
|
||||
|
||||
log("query: %s" % self._obj.query)
|
||||
self.__logger.debug("query: %s", self._obj.query)
|
||||
self.sql_log_count+=1
|
||||
res_from = re_from.match(query.lower())
|
||||
if res_from:
|
||||
|
@ -158,14 +155,16 @@ class Cursor(object):
|
|||
if sqllogs[type]:
|
||||
sqllogitems = sqllogs[type].items()
|
||||
sqllogitems.sort(key=lambda k: k[1][1])
|
||||
log("SQL LOG %s:" % (type,))
|
||||
self.__logger.debug("SQL LOG %s:", type)
|
||||
for r in sqllogitems:
|
||||
delay = timedelta(microseconds=r[1][1])
|
||||
log("table: %s: %s/%s" %(r[0], str(delay), r[1][0]))
|
||||
self.__logger.debug("table: %s: %s/%s",
|
||||
r[0], delay, r[1][0])
|
||||
sum+= r[1][1]
|
||||
sqllogs[type].clear()
|
||||
sum = timedelta(microseconds=sum)
|
||||
log("SUM %s:%s/%d [%d]" % (type, str(sum), self.sql_log_count, sql_counter))
|
||||
self.__logger.debug("SUM %s:%s/%d [%d]",
|
||||
type, sum, self.sql_log_count, sql_counter)
|
||||
sqllogs[type].clear()
|
||||
process('from')
|
||||
process('into')
|
||||
|
|
Loading…
Reference in New Issue