aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2018-10-09 23:14:50 +0200
committerGravatar GitHub <[email protected]>2018-10-09 23:14:50 +0200
commitd705882a17ab604a47b38bb77d5e3a1ef9670a9f (patch)
treeebb4ce8725f06a578dd3ae5dccf965a226a2d873
parentMerge pull request #21 from xedre/master (diff)
parentMerge branch 'master' into master (diff)
Merge pull request #22 from ninexball/master
Logging Feature
-rw-r--r--bot/__init__.py30
-rw-r--r--bot/bot.py22
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
diff --git a/bot/bot.py b/bot/bot.py
index f2a857bc..a40ed0d4 100644
--- a/bot/bot.py
+++ b/bot/bot.py
@@ -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