diff options
-rw-r--r-- | bot/__init__.py | 30 | ||||
-rw-r--r-- | bot/bot.py | 22 |
2 files changed, 49 insertions, 3 deletions
diff --git a/bot/__init__.py b/bot/__init__.py new file mode 100644 index 00000000..8cbcd121 --- /dev/null +++ b/bot/__init__.py @@ -0,0 +1,30 @@ +import os +import logging.handlers + +# set up logging + +log_dir = 'log' +log_file = log_dir + os.sep + 'hackbot.log' +os.makedirs(log_dir, exist_ok=True) + +# file handler sets up rotating logs every 5 MB +file_handler = logging.handlers.RotatingFileHandler( + log_file, maxBytes=5*(2**20), backupCount=10) +file_handler.setLevel(logging.DEBUG) + +# console handler prints to terminal +console_handler = logging.StreamHandler() +console_handler.setLevel(logging.INFO) + +# remove old loggers if any +root = logging.getLogger() +if root.handlers: + for handler in root.handlers: + root.removeHandler(handler) + +# setup new logging configuration +logging.basicConfig(format='%(asctime)s - %(name)s %(levelname)s: %(message)s', datefmt="%D %H:%M:%S", + level=logging.DEBUG, + handlers=[console_handler, file_handler]) + +logging.info('Logging Process Started')
\ No newline at end of file @@ -1,23 +1,39 @@ from os import environ from pathlib import Path from sys import stderr -from traceback import print_exc +from traceback import print_exc, format_exc from discord.ext import commands +import logging HACKTOBERBOT_TOKEN = environ.get('HACKTOBERBOT_TOKEN') +if HACKTOBERBOT_TOKEN: + token_dl = len(HACKTOBERBOT_TOKEN) // 8 + logging.info(f'Bot token loaded: {HACKTOBERBOT_TOKEN[:token_dl]}...{HACKTOBERBOT_TOKEN[-token_dl:]}') +else: + logging.error(f'Bot token not found: {HACKTOBERBOT_TOKEN}') + ghost_unicode = "\N{GHOST}" bot = commands.Bot(command_prefix=commands.when_mentioned_or(".", f"{ghost_unicode} ", ghost_unicode)) +logging.info('Start loading extensions from ./cogs/') + + if __name__ == '__main__': # Scan for files in the /cogs/ directory and make a list of the file names. cogs = [file.stem for file in Path('cogs').glob('*.py')] for extension in cogs: try: bot.load_extension(f'cogs.{extension}') + logging.info(f'Successfully loaded extension: {extension}') except Exception as e: - print(f'Failed to load extension {extension}.', file=stderr) - print_exc() + logging.error(f'Failed to load extension {extension}: {repr(e)} {format_exc()}') + # print(f'Failed to load extension {extension}.', file=stderr) + # print_exc() + +logging.info(f'Spooky Launch Sequence Initiated...') bot.run(HACKTOBERBOT_TOKEN) + +logging.info(f'HackBot has been slain!')
\ No newline at end of file |