Add db.conn.log option to suppress sql logs by default
[cascardo/ipsilon.git] / ipsilon / util / data.py
index a365e33..26fa859 100644 (file)
@@ -24,6 +24,7 @@ from sqlalchemy.sql import select
 import ConfigParser
 import os
 import uuid
+import logging
 
 
 OPTIONS_COLUMNS = ['name', 'option', 'value']
@@ -36,11 +37,13 @@ class SqlStore(Log):
     @classmethod
     def get_connection(cls, name):
         if name not in cls.__instances.keys():
-            print 'SqlStore new: %s' % name
+            if cherrypy.config.get('db.conn.log', False):
+                logging.debug('SqlStore new: %s', name)
             cls.__instances[name] = SqlStore(name)
         return cls.__instances[name]
 
     def __init__(self, name):
+        self.db_conn_log = cherrypy.config.get('db.conn.log', False)
         self.debug('SqlStore init: %s' % name)
         self.name = name
         engine_name = name
@@ -57,10 +60,13 @@ class SqlStore(Log):
             # It's not possible to share connections for SQLite between
             #  threads, so let's use the SingletonThreadPool for them
             pool_args = {'poolclass': SingletonThreadPool}
-        # pylint: disable=star-args
         self._dbengine = create_engine(engine_name, **pool_args)
         self.is_readonly = False
 
+    def debug(self, fact):
+        if self.db_conn_log:
+            super(SqlStore, self).debug(fact)
+
     def engine(self):
         return self._dbengine