1
2 """
3 StarCluster logging module
4 """
5 import types
6 import logging
7 import logging.handlers
8 from logging import INFO, DEBUG, WARN, ERROR, FATAL
9
10 from starcluster import static
11
12 INFO_NO_NEWLINE = logging.INFO + 1
13
15
16 formatters = { logging.INFO: logging.Formatter(">>> %(message)s\n"),
17 INFO_NO_NEWLINE: logging.Formatter(">>> %(message)s"),
18 logging.DEBUG: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"),
19 logging.WARN: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"),
20 logging.CRITICAL: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"),
21 logging.ERROR: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n")}
22
25
26 - def emit(self, record):
27 try:
28 msg = self.format(record)
29 fs = "%s"
30 if not hasattr(types, "UnicodeType"):
31 self.stream.write(fs % msg)
32 else:
33 try:
34 self.stream.write(fs % msg)
35 except UnicodeError:
36 self.stream.write(fs % msg.encode("UTF-8"))
37 self.flush()
38 except (KeyboardInterrupt, SystemExit):
39 raise
40 except:
41 self.handleError(record)
42
43 log = logging.getLogger('starcluster')
44 log.setLevel(logging.DEBUG)
45
46 formatter = logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s")
47
48 rfh = logging.handlers.RotatingFileHandler(static.DEBUG_FILE,
49 maxBytes=1048576,
50 backupCount=2)
51 rfh.setLevel(logging.DEBUG)
52 rfh.setFormatter(formatter)
53 log.addHandler(rfh)
54
55 console = ConsoleLogger()
56 console.setLevel(logging.INFO)
57 log.addHandler(console)
58
59
60
61
62
63
64
65
66
67
68
69