break out logging into separate module
parent
9960209c47
commit
5b6ec72d0b
|
@ -5,6 +5,8 @@ import logging
|
||||||
import os
|
import os
|
||||||
import ssl
|
import ssl
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from . import log
|
||||||
from . import plugin
|
from . import plugin
|
||||||
|
|
||||||
import irc.bot
|
import irc.bot
|
||||||
|
@ -22,6 +24,7 @@ class Bot(irc.bot.SingleServerIRCBot):
|
||||||
self.ns_pass = kwargs.get('ns_pass', None)
|
self.ns_pass = kwargs.get('ns_pass', None)
|
||||||
self.nickserv = kwargs.get('nickserv', 'NickServ')
|
self.nickserv = kwargs.get('nickserv', 'NickServ')
|
||||||
self.log_level = kwargs.get('log_level', 'info')
|
self.log_level = kwargs.get('log_level', 'info')
|
||||||
|
self.log_file = kwargs.get('log_file', None)
|
||||||
self.server_pass = kwargs.get('server_pass', None)
|
self.server_pass = kwargs.get('server_pass', None)
|
||||||
self.cmd_prefix = kwargs.get('cmd_prefix', '!')
|
self.cmd_prefix = kwargs.get('cmd_prefix', '!')
|
||||||
self.use_prefix_for_plugins = kwargs.get('use_prefix_for_plugins', False)
|
self.use_prefix_for_plugins = kwargs.get('use_prefix_for_plugins', False)
|
||||||
|
@ -32,7 +35,7 @@ class Bot(irc.bot.SingleServerIRCBot):
|
||||||
irc.bot.SingleServerIRCBot.__init__(self, [(server, self.port, self.server_pass)], nickname, nickname)
|
irc.bot.SingleServerIRCBot.__init__(self, [(server, self.port, self.server_pass)], nickname, nickname)
|
||||||
self.chanlist = channels
|
self.chanlist = channels
|
||||||
self.bot_nick = nickname
|
self.bot_nick = nickname
|
||||||
self.start_logging(self.log_level)
|
self.start_logging()
|
||||||
self.output_message = plugin.message
|
self.output_message = plugin.message
|
||||||
self.output_action = plugin.action
|
self.output_action = plugin.action
|
||||||
self.internal_commands = {
|
self.internal_commands = {
|
||||||
|
@ -67,31 +70,23 @@ class Bot(irc.bot.SingleServerIRCBot):
|
||||||
if not (cmd or text):
|
if not (cmd or text):
|
||||||
raise TypeError('missing cmd or text parameter')
|
raise TypeError('missing cmd or text parameter')
|
||||||
|
|
||||||
def start_logging(self, level):
|
def start_logging(self):
|
||||||
if level == 'error':
|
self.logger = log.logger
|
||||||
|
if self.log_file:
|
||||||
|
log.set_log_file(self.log_file)
|
||||||
|
else:
|
||||||
|
log.set_log_file('{}.log'.format(self.bot_nick))
|
||||||
|
if self.log_level == 'error':
|
||||||
level = logging.ERROR
|
level = logging.ERROR
|
||||||
elif level == 'warning':
|
elif self.log_level == 'warning':
|
||||||
level = logging.WARNING
|
level = logging.WARNING
|
||||||
elif level == 'info':
|
elif self.log_level == 'info':
|
||||||
level = logging.INFO
|
level = logging.INFO
|
||||||
elif level == 'debug':
|
elif self.log_level == 'debug':
|
||||||
level = logging.DEBUG
|
level = logging.DEBUG
|
||||||
self.logger = logging.getLogger(self.bot_nick)
|
|
||||||
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(module)s - %(message)s')
|
|
||||||
# Set console logger
|
|
||||||
ch = logging.StreamHandler()
|
|
||||||
ch.setFormatter(formatter)
|
|
||||||
# Set file logger
|
|
||||||
fh = logging.FileHandler('{}.log'.format(self.bot_nick))
|
|
||||||
fh.setFormatter(formatter)
|
|
||||||
# Set levels
|
# Set levels
|
||||||
if level != "off":
|
if self.log_level != "off":
|
||||||
self.logger.setLevel(level)
|
self.logger.setLevel(level)
|
||||||
ch.setLevel(level)
|
|
||||||
fh.setLevel(level)
|
|
||||||
# Add handlers
|
|
||||||
self.logger.addHandler(ch)
|
|
||||||
self.logger.addHandler(fh)
|
|
||||||
self.logger.info('Logging started!')
|
self.logger.info('Logging started!')
|
||||||
|
|
||||||
def load_plugins(self):
|
def load_plugins(self):
|
||||||
|
@ -304,7 +299,8 @@ class Bot(irc.bot.SingleServerIRCBot):
|
||||||
class TwitchBot(Bot):
|
class TwitchBot(Bot):
|
||||||
def __init__(self, nickname, channel, token, plugin_dir='plugins', log_level='info', ops=[]):
|
def __init__(self, nickname, channel, token, plugin_dir='plugins', log_level='info', ops=[]):
|
||||||
self.bot_nick = nickname
|
self.bot_nick = nickname
|
||||||
self.start_logging(log_level)
|
self.log_level = log_level
|
||||||
|
self.start_logging()
|
||||||
self.channel = channel
|
self.channel = channel
|
||||||
self.plugin_dir = plugin_dir
|
self.plugin_dir = plugin_dir
|
||||||
self.ops = ops
|
self.ops = ops
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger('bot')
|
||||||
|
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(module)s - %(message)s')
|
||||||
|
# Set console logger
|
||||||
|
streamhandler = logging.StreamHandler()
|
||||||
|
streamhandler.setFormatter(formatter)
|
||||||
|
logger.addHandler(streamhandler)
|
||||||
|
|
||||||
|
def set_log_file(filename):
|
||||||
|
# Set file logger
|
||||||
|
filehandler = logging.FileHandler(filename)
|
||||||
|
filehandler.setFormatter(formatter)
|
||||||
|
logger.addHandler(filehandler)
|
Loading…
Reference in New Issue