You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
modular-discord-bot-fw/grim_logger.py

26 lines
976 B

from enum import Enum
from inspect import stack
from sys import stdout
from datetime import datetime
class glog_flags(Enum):
METHOD_PRINT = 0
METHOD_FILE = 1
class glog_level(Enum):
PLAIN = 0
TRACE = 1
class glog():
def __init__(self, flags = [glog_flags.METHOD_PRINT], filename = "bot.log", level = glog_level.PLAIN):
if not flags: raise ValueError("no glog_flags given!")
self.targets = []
if glog_flags.METHOD_PRINT in flags:
self.targets.append(stdout)
if glog_flags.METHOD_FILE in flags:
self.targets.append(open(filename, "a"))
self.level = level
def __del__(self):
for target in self.targets:
if not(target == stdout):
target.close()
def write(self, message):
for target in self.targets:
target.write("({2})@[{0}]: {1}\n".format(stack()[1].function if self.level == glog_level.TRACE else "glog", message, datetime.now()))