Print full backtrace.
authorCMDR furrycat <elite@furrycat.net>
Thu, 13 Apr 2017 10:23:22 +0000 (11:23 +0100)
committerCMDR furrycat <elite@furrycat.net>
Thu, 13 Apr 2017 10:23:22 +0000 (11:23 +0100)
bot.py

diff --git a/bot.py b/bot.py
index 8d543e9..25dfa75 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -36,13 +36,8 @@ def is_admin(user, server = None):
     ret = True
     break
   db.close_db()
-  tb = traceback.extract_stack()
-  if len(tb) > 2:
-    caller = tb[-2]
-  else:
-    caller = tb[-1]
-  caller_file, caller_line, caller_function, caller_text = caller
-  log.info('{}@{}:{}: User {} {} an administrator{}'.format(caller_function, caller_file.split('/')[-1], caller_line, user.name, 'is' if ret else 'is not', ' on server {}'.format(server.name) if server is not None else ''))
+  tb = reversed(traceback.extract_stack()[0:-2])
+  log.info('{}: User {} {} an administrator{}'.format(': '.join(['{}@{}:{}'.format(frame[2], frame[0].split('/')[-1], frame[1]) for frame in tb]), user.name, 'is' if ret else 'is not', ' on server {}'.format(server.name) if server is not None else ''))
   return ret
 
 def is_member(member, name, *, author = None, check_nick = True):