import repository from arizona
[raven.git] / apps / stork / storkoutputfuncs.py
1 import time
2 import arizonareport
3
4 glo_tstart = time.time()
5 glo_hp = None
6 glo_linestart = True
7
8 def output_func_timestamp(type, verbosity, output):
9     global glo_tstart
10     global glo_linestart
11
12     tnow = time.time()
13
14     if glo_linestart and (type != "send_syslog"):
15         time_str = "[%.2f] " % (tnow - glo_tstart)
16         output = time_str + output
17
18     if (type == "send_out") or (type == "send_error"):
19         glo_linestart = True
20     elif (type == "send_out_comma") or (type == "send_error_comma"):
21         glo_linestart = False
22
23     return output
24
25 def output_func_heapstamp(type, verbosity, output):
26     global glo_tstart
27     global glo_linestart
28     global glo_hp
29
30     tnow = time.time()
31
32     if glo_linestart and (type != "send_syslog"):
33         time_str = "[%.2f] " % (tnow - glo_tstart)
34         heap_str = "[" + str(glo_hp.heap().size/1024/1024) + " MB] "
35         output = time_str + heap_str + output
36
37     if (type == "send_out") or (type == "send_error"):
38         glo_linestart = True
39     elif (type == "send_out_comma") or (type == "send_error_comma"):
40         glo_linestart = False
41
42     return output
43
44 def enable_timestamp_output():
45     global glo_tstart
46     arizonareport.set_output_function(output_func_timestamp)
47
48 def enable_heapstamp_output():
49     global glo_tstart
50     global glo_hp
51
52     from guppy import hpy
53     glo_hp = hpy()
54     arizonareport.set_output_function(output_func_heapstamp)
55