006250c3213d5482e5654d2e336bd1ae237d0eda
[sfa.git] / sfa / util / sfalogging.py
1 import logging
2 import os
3 import traceback
4
5 #SFA access log initialization
6 TMPDIR = os.getenv("TMPDIR", "/tmp")
7 SFA_HTTPD_ACCESS_LOGFILE = TMPDIR + "/" + 'sfa_httpd_access.log'
8 SFA_ACCESS_LOGFILE='/var/log/sfa_access.log'
9 logger=logging.getLogger()
10 #logger.setLevel(logging.INFO)
11 logger.setLevel(logging.DEBUG)
12
13 try:
14     logfile=logging.FileHandler(SFA_ACCESS_LOGFILE)
15 except IOError:
16     # This is usually a permissions error becaue the file is
17     # owned by root, but httpd is trying to access it.
18     logfile=logging.FileHandler(SFA_HTTPD_ACCESS_LOGFILE)
19     
20 formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
21 logfile.setFormatter(formatter)
22 logger.addHandler(logfile)
23 def get_sfa_logger():
24     return logger
25
26 # logs an exception - use in an except statement
27 def log_exc(message):
28     logger.error("%s BEG TRACEBACK"%message+"\n"+traceback.format_exc().strip("\n"))
29     logger.error("%s END TRACEBACK"%message)
30     
31
32 # for investigation purposes, can be placed anywhere
33 def log_stack(message):
34     to_log="".join(traceback.format_stack())
35     logger.debug("%s BEG STACK"%message+"\n"+to_log)
36     logger.debug("%s END STACK"%message)
37     
38