Separate bot logging from Discord logging.
authorCMDR furrycat <elite@furrycat.net>
Sun, 2 Oct 2016 21:20:52 +0000 (22:20 +0100)
committerCMDR furrycat <elite@furrycat.net>
Mon, 3 Oct 2016 06:45:29 +0000 (07:45 +0100)
bot.py

diff --git a/bot.py b/bot.py
index 593ea7d..d66683d 100755 (executable)
--- a/bot.py
+++ b/bot.py
@@ -19,6 +19,7 @@ import time
 from PIL import Image
 
 dryrun = os.getenv('DRYRUN') is not None
+debug = os.getenv('DEBUG') is not None
 
 if sys.version_info >= (3, 0):
   import urllib.request
@@ -40,8 +41,10 @@ fd.close()
 fd = open(token_file, 'r')
 token = fd.readline().strip()
 fd.close()
-logging.basicConfig(level = logging.DEBUG if os.getenv('DEBUG') is not None else logging.WARN)
-log = logging.getLogger('discord')
+logging.basicConfig(level = logging.DEBUG if debug else logging.WARN)
+discordlog = logging.getLogger('discord')
+log = logging.getLogger('catbot')
+log.setLevel(logging.DEBUG if debug else logging.INFO)
 
 idletime = multiprocessing.Value('i', 900)
 rsstime = multiprocessing.Value('i', 600)
@@ -115,7 +118,7 @@ def wait_for_prompt(p):
 # Get my idle status.
 def status():
   for server in client.servers:
-    #print('status {} now {} last_spoke {} diff {} cutoff {}'.format(server.me.status, int(time.time()), int(last_spoke.value), int(time.time() - last_spoke.value), idletime.value))
+    log.debug('status {} now {} last_spoke {} diff {} cutoff {}'.format(server.me.status, int(time.time()), int(last_spoke.value), int(time.time() - last_spoke.value), idletime.value))
     return server.me.status
   return None
 
@@ -334,9 +337,11 @@ def do_commands(message, command, raw, non_admin):
 
     arg = m.group(1)
     if arg == 'on':
+      discordlog.setLevel(logging.DEBUG)
       log.setLevel(logging.DEBUG)
     elif arg == 'off':
-      log.setLevel(logging.WARN)
+      discordlog.setLevel(logging.WARN)
+      log.setLevel(logging.INFO)
 
   elif command == 'delete':
     # delete
@@ -362,10 +367,10 @@ def do_commands(message, command, raw, non_admin):
 
     arg = m.group(1)
     if arg == 'on':
-      print('DRYRUN mode')
+      log.info('DRYRUN mode')
       dryrun = True
     elif arg == 'off':
-      print('Live mode')
+      log.info('Live mode')
       dryrun = False
 
   elif command == 'idle':
@@ -746,16 +751,16 @@ def play_greeting(greeting):
 @client.event
 @asyncio.coroutine
 def on_ready():
-  print('Logged in as {}#{}'.format(client.user.name, client.user.id))
+  log.info('Logged in as {}#{}'.format(client.user.name, client.user.id))
   bot = bots.get(str(client.user.id), [])
   if bot is not None:
     feeds = bot.get('feeds', [])
     greetings = bot.get('greetings', [])
     orders = bot.get('orders', [])
-  print('Admins are: {}'.format(admins))
+  log.info('Admins are: {}'.format(admins))
   yield from wake_up(True)
   channels = yield from channels_to_greet()
-  print('Greeting in {}'.format([channel.name for channel in channels]))
+  log.info('Greeting in {}'.format([channel.name for channel in channels]))
   for channel in channels:
     log.debug('Greeting in {}'.format(channel.name))
     sound = True
@@ -768,9 +773,9 @@ def on_ready():
   for member in client.get_all_members():
     log.debug('Maybe unassigning {}'.format(member.name))
     yield from set_unassigned(member)
-  print('RSS feeds: {}'.format([feed['description'] for feed in feeds if 'description' in feed]))
+  log.info('RSS feeds: {}'.format([feed['description'] for feed in feeds if 'description' in feed]))
   asyncio.async(do_feeds(feeds))
-  print('Orders in {}'.format([channel.name for channel in filter(None, [client.get_channel(str(order['channel'])) for order in orders])]))
+  log.info('Orders in {}'.format([channel.name for channel in filter(None, [client.get_channel(str(order['channel'])) for order in orders])]))
   asyncio.async(do_orders(orders))
   asyncio.async(maybe_sleep())