improve server-side logging of exceptions
[sfa.git] / sfa / util / sfalogging.py
index 0e17ccb..006250c 100644 (file)
@@ -1,12 +1,14 @@
 import logging
 import os
+import traceback
 
 #SFA access log initialization
 TMPDIR = os.getenv("TMPDIR", "/tmp")
 SFA_HTTPD_ACCESS_LOGFILE = TMPDIR + "/" + 'sfa_httpd_access.log'
 SFA_ACCESS_LOGFILE='/var/log/sfa_access.log'
 logger=logging.getLogger()
-logger.setLevel(logging.INFO)
+#logger.setLevel(logging.INFO)
+logger.setLevel(logging.DEBUG)
 
 try:
     logfile=logging.FileHandler(SFA_ACCESS_LOGFILE)
@@ -15,8 +17,22 @@ except IOError:
     # owned by root, but httpd is trying to access it.
     logfile=logging.FileHandler(SFA_HTTPD_ACCESS_LOGFILE)
     
-formatter = logging.Formatter("%(asctime)s - %(message)s")
+formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
 logfile.setFormatter(formatter)
 logger.addHandler(logfile)
 def get_sfa_logger():
     return logger
+
+# logs an exception - use in an except statement
+def log_exc(message):
+    logger.error("%s BEG TRACEBACK"%message+"\n"+traceback.format_exc().strip("\n"))
+    logger.error("%s END TRACEBACK"%message)
+    
+
+# for investigation purposes, can be placed anywhere
+def log_stack(message):
+    to_log="".join(traceback.format_stack())
+    logger.debug("%s BEG STACK"%message+"\n"+to_log)
+    logger.debug("%s END STACK"%message)
+    
+