Author: phd
Date: 2007-02-22 08:08:41 -0700 (Thu, 22 Feb 2007)
New Revision: 2346
Modified:
home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
home/phd/SQLObject/paramstyles/sqlobject/tests/dbtest.py
Log:
Merged patches from the revisions 2343:2345 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-02-22 15:05:54 UTC (rev 2345)
+++ home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-02-22 15:08:41 UTC (rev 2346)
@@ -4,6 +4,7 @@
import threading
from util.threadinglocal import local as threading_local
+import sys
import re
import warnings
import atexit
@@ -32,15 +33,39 @@
if conn is not None:
conn.close()
+class ConsoleWriter:
+ def __init__(self, loglevel):
+ self.loglevel = loglevel
+ self.logfile = getattr(sys, loglevel or "stdout")
+ def write(self, text):
+ self.logfile.write(text + '\n')
+
+class LogWriter:
+ def __init__(self, logger, loglevel):
+ self.logger = logger
+ self.loglevel = loglevel
+ self.logmethod = getattr(logger, loglevel)
+ def write(self, text):
+ self.logmethod(text)
+
+def makeDebugWriter(loggerName, loglevel):
+ if not loggerName:
+ return ConsoleWriter(loglevel)
+ import logging
+ logger = logging.getLogger(loggerName)
+ return LogWriter(logger, loglevel)
+
class DBConnection:
def __init__(self, name=None, debug=False, debugOutput=False,
cache=True, style=None, autoCommit=True,
- debugThreading=False, registry=None):
+ debugThreading=False, registry=None,
+ logger=None, loglevel=None):
self.name = name
self.debug = debug
self.debugOutput = debugOutput
self.debugThreading = debugThreading
+ self.debugWriter = makeDebugWriter(logger, loglevel)
self.cache = CacheSet(cache=cache)
self.doCache = cache
self.style = style
@@ -301,7 +326,8 @@
threadName = (':' + threadName + ' '*(8-len(threadName)))
else:
threadName = ''
- print '%(n)2i%(threadName)s/%(name)s%(spaces)s%(sep)s %(s)s' % locals()
+ msg = '%(n)2i%(threadName)s/%(name)s%(spaces)s%(sep)s %(s)s' % locals()
+ self.debugWriter.write(msg)
def _executeRetry(self, conn, cursor, query):
if isinstance(query, str):
@@ -573,7 +599,7 @@
if isinstance(tableCreateSQLs, tuple):
tableCreateSQLs = list(tableCreateSQLs)
assert isinstance(tableCreateSQLs,list), (
- 'Unable to create a list from %s.sqlmeta.createSQL' %
+ 'Unable to create a list from %s.sqlmeta.createSQL' %
(soClass.__name__))
return tableCreateSQLs or []
Modified: home/phd/SQLObject/paramstyles/sqlobject/tests/dbtest.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/dbtest.py 2007-02-22 15:05:54 UTC (rev 2345)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/dbtest.py 2007-02-22 15:08:41 UTC (rev 2346)
@@ -10,6 +10,12 @@
import sqlobject
import sqlobject.conftest as conftest
+try:
+ import logging
+ loggingModuleAvailable = True
+except ImportError:
+ loggingModuleAvailable = False
+
if sys.platform[:3] == "win":
def getcwd():
return os.getcwd().replace(':', '|')
@@ -306,6 +312,17 @@
sqlobject.main.warnings_level = None
sqlobject.main.exception_level = 0
+def setupLogging():
+ if not loggingModuleAvailable:
+ return
+ fmt = '[%(asctime)s] %(name)s %(levelname)s: %(message)s'
+ formatter = logging.Formatter(fmt)
+ hdlr = logging.StreamHandler(sys.stderr)
+ hdlr.setFormatter(formatter)
+ hdlr.setLevel(logging.NOTSET)
+ logger = logging.getLogger()
+ logger.addHandler(hdlr)
+
__all__ = ['getConnection', 'getConnectionURI', 'setupClass', 'Dummy', 'raises',
'd', 'inserts', 'supports', 'deprecated_module',
- 'setup_module', 'teardown_module']
+ 'setup_module', 'teardown_module', 'setupLogging']
|