Package deefuzzer :: Package tools :: Module logger
[hide private]
[frames] | no frames]

Source Code for Module deefuzzer.tools.logger

 1  #!/usr/bin/python 
 2  # -*- coding: utf-8 -*- 
 3   
 4  import logging 
 5  from threading import Thread 
 6   
 7   
8 -class Logger:
9 """A logging object""" 10
11 - def __init__(self, filepath):
12 self.logger = logging.getLogger('myapp') 13 self.hdlr = logging.FileHandler(filepath) 14 self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 15 self.hdlr.setFormatter(self.formatter) 16 self.logger.addHandler(self.hdlr) 17 self.logger.setLevel(logging.INFO)
18
19 - def write_info(self, message):
20 self.logger.info(message)
21
22 - def write_error(self, message):
23 self.logger.error(message)
24 25
26 -class QueueLogger(Thread):
27 """A queue-based logging object""" 28
29 - def __init__(self, filepath, q):
30 Thread.__init__(self) 31 self.logger = Logger(filepath) 32 self.q = q
33
34 - def run(self):
35 while True: 36 try: 37 msg = self.q.get(1) 38 if not isinstance(msg, dict): 39 self.logger.write_error(str(msg)) 40 else: 41 if 'msg' not in msg: 42 continue 43 44 if 'level' in msg: 45 if msg['level'] == 'info': 46 self.logger.write_info(msg['msg']) 47 else: 48 self.logger.write_error(msg['msg']) 49 else: 50 self.logger.write_error(msg['msg']) 51 except: 52 pass
53