Skip to content

Commit 33277eb

Browse files
committed
Merge pull request #58 from d-Rickyy-b/dev
Optimize logging
2 parents 5051e95 + 9bded54 commit 33277eb

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

logs/.keep

Whitespace-only changes.

main.py

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@
2323

2424
BOT_TOKEN = "<your_bot_token>"
2525

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+
2630
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])
2832

2933
if not re.match("[0-9]+:[a-zA-Z0-9\-_]+", BOT_TOKEN):
3034
logging.error("Bot token not correct - please check.")
@@ -129,6 +133,15 @@ def game_commands(bot, update):
129133
game.analyze_message(update)
130134

131135

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+
132145
def stop_and_restart():
133146
"""Gracefully stops the Updater and replaces the current process with a new one"""
134147
updater.stop()
@@ -442,24 +455,15 @@ def restart(bot, update):
442455
mp_handler = CommandHandler('multiplayer', multiplayer)
443456
join_sec = CommandHandler('join_secret', join_secret)
444457

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)
463467

464468
updater.start_polling()
465469
updater.idle()

0 commit comments

Comments
 (0)