-
Notifications
You must be signed in to change notification settings - Fork 0
/
Logger.py
53 lines (46 loc) · 1.4 KB
/
Logger.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from PluginInterface import *
import os
import time
"""
\file Logger.py
\brief Contains the logger plugin
This plugin provides an interface for logging.
It can be replaced by any other plugin that provides the same interface,
but it should take the same arguments.
"""
class Logger(PluginInterface):
"""
\brief The logger class plugin
"""
def __init__(self, pipes, args):
"""
\brief The constructor
\param pipes The pipes for communication with the PluginManager, passed to the super constructor
\param args The arguments to this logger, up to now only the name of the log-file
"""
if isinstance(args, str):
self.file = open(args, "w")
else:
self.file = open("logger.log", "w")
self.loglevel = 0
super(Logger, self).__init__(pipes)
def initialize(self, args):
"""
\brief Initializing the logger on startup
Nothing to do up to now
"""
#self.callMethod((None,"subscribeEvent"), "TmConnector", "defaultCallback", "log")
pass
def log(self, args, level = 0):
"""
\brief Log one line with the given level
\param args The args to log
Depending on the loglevel messages can be ignored.
"""
if level >= self.loglevel:
timeStamp = time.strftime('%b %d %H:%M:%S')
self.file.write(timeStamp + ' ' + str(args) + os.linesep)
self.file.flush()
else:
print('Logger: ignored message of level ' + str(level) + ' because current loglevel is '\
+ str(self.loglevel))