aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EventManager.py14
-rw-r--r--modules/logs.py5
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)