about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2016-06-19 08:50:55 +0000
committerPjotr Prins2016-06-19 08:50:55 +0000
commit2214650621ee57b4c427bf8b5cab1128eb06db93 (patch)
treeb1c29a7e9b99ced8d496497a6c9d8bcfdbc1932e
parent45bc57a19598c92fc4a64681bce629c1a74a03b8 (diff)
downloadgenenetwork2-2214650621ee57b4c427bf8b5cab1128eb06db93.tar.gz
Logger: started logging SQL
-rw-r--r--wqflask/dbFunction/webqtlDatabaseFunction.py34
-rw-r--r--wqflask/utility/logger.py15
-rw-r--r--wqflask/wqflask/search_results.py1
-rw-r--r--wqflask/wqflask/views.py3
4 files changed, 27 insertions, 26 deletions
diff --git a/wqflask/dbFunction/webqtlDatabaseFunction.py b/wqflask/dbFunction/webqtlDatabaseFunction.py
index 299114b4..1bc67992 100644
--- a/wqflask/dbFunction/webqtlDatabaseFunction.py
+++ b/wqflask/dbFunction/webqtlDatabaseFunction.py
@@ -20,13 +20,15 @@
 #
 # This module is used by GeneNetwork project (www.genenetwork.org)
 
-
 from flask import Flask, g
 
 import MySQLdb
 import string
 from base import webqtlConfig
 
+from utility.logger import getLogger
+logger = getLogger(__name__ )
+
 ###########################################################################
 #output: cursor instance
 #function: connect to database and return cursor instance
@@ -76,33 +78,23 @@ def getAllSpecies(cursor=None):
     allSpecies = cursor.fetchall()
     return allSpecies
 
-###########################################################################
-#input: cursor, RISet (string)
-#output: specie's name (string), value will be None or else
-#function: retrieve specie's name info based on RISet
-###########################################################################
-
 def retrieve_species(group):
-    return g.db.execute("""select Species.Name
-                           from Species, InbredSet
-                           where InbredSet.Name = %s and
-                           InbredSet.SpeciesId = Species.Id""", (group)).fetchone()[0]
+    logger.debug("retrieve_species",group)
+    logger.sql(""""select Species.Name from Species, InbredSet where InbredSet.Name = %s and InbredSet.SpeciesId = Species.Id""", (group))
+
+    return g.db.execute("""select Species.Name from Species, InbredSet where InbredSet.Name =
+%s and InbredSet.SpeciesId = Species.Id""", (group)).fetchone()[0]
 
 def retrieve_species_id(group):
     return g.db.execute("select SpeciesId from InbredSet where Name = %s", (group)).fetchone()[0]
 
 
-###########################################################################
-# input: cursor
-# output: tissProbeSetFreezeIdList (list),
-#         nameList (list),
-#         fullNameList (list)
-# function: retrieve all TissueProbeSetFreezeId,Name,FullName info
-#           from TissueProbeSetFreeze table.
-#           These data will listed in the dropdown menu in the first page of Tissue Correlation
-###########################################################################
-
 def getTissueDataSet(cursor=None):
+    """Retrieve all TissueProbeSetFreezeId,Name,FullName info from
+TissueProbeSetFreeze table.  These data will listed in the dropdown
+menu in the first page of Tissue Correlation
+
+    """
     tissProbeSetFreezeIdList=[]
     nameList =[]
     fullNameList = []
diff --git a/wqflask/utility/logger.py b/wqflask/utility/logger.py
index 81202b05..bc0578c9 100644
--- a/wqflask/utility/logger.py
+++ b/wqflask/utility/logger.py
@@ -28,6 +28,7 @@
 
 import logging
 import string
+from inspect import isfunction
 from utility.tools import LOG_LEVEL
 
 class GNLogger:
@@ -62,8 +63,10 @@ class GNLogger:
         self.collect(self.logger.error,*args)
 
     def debugf(self,*args):
-        """Call logging.debug for multiple args"""
-        self.collect(self.logger.debug,*args)
+        """Call logging.debug for multiple args lazily"""
+        if self.logger.getEffectiveLevel() <= 10:
+            self.debug("Calling debug function!")
+            self.collectf(self.logger.debug,*args)
 
     def sql(self, sqlcommand, fun = None):
         """Log SQL command, optionally invoking a timed fun"""
@@ -73,6 +76,14 @@ class GNLogger:
         for a in args:
             fun(a)
 
+    def collectf(self,fun,*args):
+        """Collect arguments and use fun to output one by one"""
+        for a in args:
+            if isfunction(a):
+                fun(a())
+            else:
+                fun(a)
+
 # Get the module logger. You can override log levels at the
 # module level
 def getLogger(name, level = None):
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 30b65e80..494e1047 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -100,7 +100,6 @@ class SearchResultPage(object):
         self.trait_list = []
 
         species = webqtlDatabaseFunction.retrieve_species(self.dataset.group.name)
-
         # result_set represents the results for each search term; a search of
         # "shh grin2b" would have two sets of results, one for each term
         logger.debug("self.results is:", pf(self.results))
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 88cce263..f486a8b5 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -119,11 +119,11 @@ def search_page():
         else:
             return render_template("data_sharing.html", **template_vars.__dict__)
     else:
-        logger.debug("key is:", pf(key))
         result = None
         if USE_REDIS:
             with Bench("Trying Redis cache"):
                 key = "search_results:v1:" + json.dumps(request.args, sort_keys=True)
+                logger.debug("key is:", pf(key))
                 result = Redis.get(key)
                 if result:
                     logger.info("Redis cache hit on search results!")
@@ -131,7 +131,6 @@ def search_page():
         else:
             logger.info("Skipping Redis cache (USE_REDIS=False)")
 
-        logger.info("calling search_results.SearchResultPage")
         logger.info("request.args is", request.args)
         the_search = search_results.SearchResultPage(request.args)
         result = the_search.__dict__