diff options
| -rw-r--r-- | EventManager.py | 14 | ||||
| -rw-r--r-- | modules/logs.py | 5 |
2 files changed, 15 insertions, 4 deletions
diff --git a/EventManager.py b/EventManager.py index 0a16a657..70700f4a 100644 --- a/EventManager.py +++ b/EventManager.py @@ -1,8 +1,9 @@ +import traceback class Event(object): - def __init__(self, bot, subevent, **kwargs): + def __init__(self, bot, name, **kwargs): self.bot = bot - self.subevent = subevent + self.name = name self.kwargs = kwargs self.eaten = False def __getitem__(self, key): @@ -68,7 +69,14 @@ class EventHook(object): break if event.eaten: break - returns.append(hook.call(event)) + try: + returns.append(hook.call(event)) + except Exception as e: + traceback.print_exc() + # TODO don't make this an event call. can lead to error cycles! + self.bot.events.on("log").on("error").call( + message="Failed to call event callback", + data=traceback.format_exc()) called += 1 return returns def get_child(self, child_name): diff --git a/modules/logs.py b/modules/logs.py index 5f58cbf3..0c3ce004 100644 --- a/modules/logs.py +++ b/modules/logs.py @@ -11,6 +11,9 @@ class Module(object): log_level = event.name timestamp = self.timestamp() message = event["message"] + data = event.get("data") with open("bot.log", "a") as log_file: - log_file.write("%s [%s] %s" % (timestamp, log_level, + log_file.write("%s [%s] %s\n" % (timestamp, log_level, message)) + if data: + log_file.write("%s\n" % data) |
