ppf/new: Add parser.py.
[cs-p2p-next.git] / ppf / new / parser.py
1 """
2 Storage class for P2P logging information.
3
4 Built on previous work by Adriana Draghici, Marius Sandu-Popa, Razvan
5 Deaconescu and Mariana Marasoiu.
6
7 2011, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro
8 """
9
10 import os
11 import os.path
12 import re
13 import datetime
14 import logging
15
16 import storage      # Use *Message classes.
17
18 #
19 # Logging code heavily inspired by Logging HOWTO documentation:
20 #     http://docs.python.org/dev/howto/logging.html#configuring-logging
21 #
22
23 # Create logger; default logging level is DEBUG.
24 logger = logging.getLogger(__name__)
25 logger.setLevel(logging.DEBUG)
26
27 # Create console handler and set level to ERROR.
28 ch = logging.StreamHandler()
29 ch.setLevel(logging.DEBUG)
30
31 # Create formatter.
32 formatter = logging.Formatter('%(filename)s:%(lineno)s - %(levelname)s: %(message)s')
33
34 # Add formatter to console handler.
35 ch.setFormatter(formatter)
36
37 # Add console handler to logger.
38 logger.addHandler(ch)
39
40 class SessionLogParser(object):
41     """
42     Top-level class for parsing log file(s) for a given BitTorrent session.
43     """
44
45     def __init__(self, path):
46         self.path = path
47
48     def get_next_message(self):
49         """
50         Find next message in log file/folder. May be status, peer status
51         or verbose message.
52         Return None when all logs have been parsed.
53         """
54         return None
55
56 class LibtorrentLogParser(object):
57     """
58     libtorrent-rasterbar log folder parser.
59     """
60
61     def __init__(self, path):
62         super(LibtorrrentLogParser, self).__init__(path)
63
64     def get_next_message(self):
65         """
66         Go through all files in libtorrent log folder and parse them.
67         Return the next message available or None when all logs have
68         been parsed.
69         """
70         return None
71
72 class TriblerLogParser(object):
73     """
74     Tribler log file parser.
75     """
76
77     def __init__(self, path):
78         super(LibtorrrentLogParser, self).__init__(path)
79
80     def get_next_message(self):
81         """
82         Go through all files in libtorrent log folder and parse them.
83         Return the next message available or None when all logs have
84         been parsed.
85         """
86         return None