Wii-U-Firmware-Emulator/log.py
2017-12-28 17:36:34 +01:00

42 lines
884 B
Python

class LogWriter:
def __init__(self, name=""):
self.name = name
self.buffer = ""
def write(self, data):
self.buffer += data
for line in self.buffer.split("\n")[:-1]:
self.print("%s> %s" %(self.name, line))
self.buffer = self.buffer.split("\n")[-1]
def close(self):
if self.buffer:
self.print("%s> %s" %(self.name, self.buffer))
def print(self, data): raise NotImplementedError("LogWriter.print")
class ConsoleLogger(LogWriter):
def print(self, data):
print(data)
class PrintLogger(ConsoleLogger):
def write(self, data):
if not data.endswith("\n"):
data += "\n"
super().write(data)
class FileLogger(LogWriter):
def __init__(self, filename, name=""):
super().__init__(name)
self.file = open(filename, "w")
def close(self):
super().close()
self.file.close()
def print(self, data):
self.file.write(data + "\n")