import repository from arizona
[raven.git] / lib / ravenlib / report.py
1 #! /usr/bin/env python
2
3 """
4 <Program Name>
5    report.py
6
7 <Started>
8    Aug 25, 2010
9
10 <Author>
11    Programmed by Scott Baker.
12
13 <Purpose>
14    Logging layer for ravenlib. Primarily used to insulate ravenlib from
15    arizonareport, sending messages to the standard python error logger
16    instead.
17
18    Call enable_arizonareport() to make this module use arizonareport instead of
19    python logging.
20 """
21
22 import logging
23
24 use_arizonareport = False
25
26 DEBUG = logging.DEBUG
27
28 def getLogger():
29     if (use_arizonareport):
30         return None
31     else:
32         return logging.getLogger()
33
34 def debug(msg):
35     if (use_arizonareport):
36         arizonareport.send_out(4, "[DEBUG] " + msg)
37     else:
38         logging.debug(msg)
39
40 def info(msg):
41     if (use_arizonareport):
42         arizonareport.send_out(3, "[INFO] " + msg)
43     else:
44         logging.info(msg)
45
46 def warning(msg):
47     if (use_arizonareport):
48         arizonareport.send_error(2, "[WARNING] " + msg)
49     else:
50         logging.warning(msg)
51
52 def error(msg):
53     if (use_arizonareport):
54         arizonareport.send_error(0, "[ERROR] " + msg)
55     else:
56         logging.error(msg)
57
58
59 def enable_arizonareport():
60     global use_arizonareport
61
62     if not use_arizonareport:
63         globals()["arizonareport"] = __import__("arizonareport")
64         use_arizonareport = True
65
66