user gets notified interatively or by email in case of a CIS error
[living-lab-site.git] / cis / logger.py
1 import sys
2 import datetime
3
4 LOG_LEVEL_ALL = 0
5 LOG_LEVEL_DEBUG = 1
6 LOG_LEVEL_INFO = 2
7 LOG_LEVEL_WARNING = 3
8 LOG_LEVEL_ERROR = 4
9 LOG_LEVEL_FATAL = 5
10 LOG_LEVEL_OFF = 6
11
12 LOG_LEVEL_NAMES = { \
13     LOG_LEVEL_DEBUG: 'DEBUG', \
14     LOG_LEVEL_INFO: 'INFO', \
15     LOG_LEVEL_WARNING: 'WARNING', \
16     LOG_LEVEL_ERROR: 'ERROR', \
17     LOG_LEVEL_FATAL: 'FATAL', \
18 }
19
20 import config
21
22 def log_msg(msg, level=LOG_LEVEL_INFO):
23     """
24     Prints log messages based on the log level.
25     """
26     
27     if level == LOG_LEVEL_ALL or level == LOG_LEVEL_OFF:
28         return
29         
30     if level < config.LOG_LEVEL:
31         return
32     
33     if level >= LOG_LEVEL_ERROR:
34         f = sys.stderr
35     else:
36         f = sys.stdout
37     
38     now = datetime.datetime.now()
39     date_time = now.strftime('%Y-%m-%d %H:%M:%S')
40         
41     f.write('[%s][%s] %s\n' % (LOG_LEVEL_NAMES[level], date_time, msg))