|
23 | 23 |
|
24 | 24 | BOT_TOKEN = "<your_bot_token>" |
25 | 25 |
|
| 26 | +logfile_dir_path = os.path.dirname(os.path.abspath(__file__)) |
| 27 | +logfile_abs_path = os.path.join(logfile_dir_path, "logs", "bot.log") |
| 28 | +logfile_handler = logging.FileHandler(logfile_abs_path, 'a', 'utf-8') |
| 29 | + |
26 | 30 | logger = logging.getLogger(__name__) |
27 | | -logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG) |
| 31 | +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG, handlers=[logfile_handler]) |
28 | 32 |
|
29 | 33 | if not re.match("[0-9]+:[a-zA-Z0-9\-_]+", BOT_TOKEN): |
30 | 34 | logging.error("Bot token not correct - please check.") |
@@ -129,6 +133,15 @@ def game_commands(bot, update): |
129 | 133 | game.analyze_message(update) |
130 | 134 |
|
131 | 135 |
|
| 136 | +def error(bot, update, error): |
| 137 | + """Log Errors caused by Updates.""" |
| 138 | + logger.warning('Update "%s" caused error "%s"', update, error) |
| 139 | + |
| 140 | + db = DBwrapper.get_instance() |
| 141 | + for admin_id in db.get_admins(): |
| 142 | + send_message(admin_id, "Update '{0}' caused error '{1}'".format(update, error)) |
| 143 | + |
| 144 | + |
132 | 145 | def stop_and_restart(): |
133 | 146 | """Gracefully stops the Updater and replaces the current process with a new one""" |
134 | 147 | updater.stop() |
@@ -442,24 +455,15 @@ def restart(bot, update): |
442 | 455 | mp_handler = CommandHandler('multiplayer', multiplayer) |
443 | 456 | join_sec = CommandHandler('join_secret', join_secret) |
444 | 457 |
|
445 | | -dispatcher.add_handler(start_handler) |
446 | | -dispatcher.add_handler(stop_handler) |
447 | | -dispatcher.add_handler(join_handler) |
448 | | -dispatcher.add_handler(help_handler) |
449 | | -dispatcher.add_handler(hide_handler) |
450 | | -dispatcher.add_handler(stats_handler) |
451 | | -dispatcher.add_handler(language_handler) |
452 | | -dispatcher.add_handler(comment_handler) |
453 | | -dispatcher.add_handler(callback_handler) |
454 | | -dispatcher.add_handler(users_handler) |
455 | | -dispatcher.add_handler(answer_handler) |
456 | | -dispatcher.add_handler(restart_handler) |
457 | | - |
458 | | -dispatcher.add_handler(mp_handler) |
459 | | -dispatcher.add_handler(join_sec) |
460 | | - |
461 | | -# Should always be the last handler to add -> Fallback if no command found |
462 | | -dispatcher.add_handler(game_command_handler) |
| 458 | +handlers = [start_handler, stop_handler, join_handler, help_handler, |
| 459 | + hide_handler, stats_handler, language_handler, comment_handler, |
| 460 | + callback_handler, users_handler, answer_handler, restart_handler, |
| 461 | + mp_handler, join_sec, game_command_handler] |
| 462 | + |
| 463 | +for handler in handlers: |
| 464 | + dispatcher.add_handler(handler) |
| 465 | + |
| 466 | +dispatcher.add_error_handler(error) |
463 | 467 |
|
464 | 468 | updater.start_polling() |
465 | 469 | updater.idle() |
0 commit comments