1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import os
18 import sys
19 import logging
20
21 import screenlets
22
24 """Initialize logger"""
25 options = screenlets.COMMAND_LINE_OPTIONS
26
27 log = logging.getLogger(screenlets.LOG_NAME)
28 if not options.LOG_DISABLED:
29
30 if options.LOG_OUTPUT == "STDOUT":
31 log_file = logging.StreamHandler(sys.stdout)
32 elif options.LOG_OUTPUT == "STDERR":
33 log_file = logging.StreamHandler(sys.stderr)
34 elif options.LOG_OUTPUT == "FILE":
35 try:
36 log_file = logging.FileHandler(screenlets.LOG_FILE, "w")
37 except IOError:
38 print("Cannot create %s logfile. Using STDERR instead.") %(screenlets.LOG_FILE)
39 log_file = logging.StreamHandler(sys.stderr)
40 else:
41 print("Unknown output type: %s, using STDERR instead.") %(screenlets.LOG_FILE)
42 log_file = logging.StreamHandler(sys.stderr)
43
44 try:
45 level = 51 - (10 * int(options.LOG_LEVEL))
46 log.setLevel(level)
47 log_file.setLevel(level)
48 except ValueError:
49 print ("LOG_LEVEL %s is not allowed. Use -h to get more information. Using LOG_LEVEL=5") %(screenlets.LOG_LEVEL)
50 log.setLevel(1)
51 log_file.setLevel(1)
52 else:
53
54 log_file = logging.StreamHandler(sys.stderr)
55
56 log.setLevel(51)
57 log_file.setLevel(51)
58
59
60 log_formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
61 log_file.setFormatter(log_formatter)
62
63
64 log.addHandler(log_file)
65 return log
66
67 log = logger_init()
68
70 """This function returns default logger"""
71 global log
72
73 try:
74 return log
75 except NameError:
76 log = logger_init()
77 if log:
78 log.debug("%s: Logger initialized" %__name__)
79 return log
80 else:
81 print("%s: Cannot initialize logger!" %__name__)
82 return None
83