Merge remote branch 'adamcik/debug-logger'

This commit is contained in:
Stein Magnus Jodal 2010-05-05 19:40:18 +02:00
commit 8677a83dcc
3 changed files with 33 additions and 4 deletions

View File

@ -1,5 +1,6 @@
import asyncore
import logging
import logging.handlers
import multiprocessing
import optparse
import os
@ -16,7 +17,7 @@ logger = logging.getLogger('mopidy.main')
def main():
options = _parse_options()
_setup_logging(options.verbosity_level)
_setup_logging(options.verbosity_level, options.debug)
get_or_create_folder('~/.mopidy/')
core_queue = multiprocessing.Queue()
get_class(settings.SERVER)(core_queue)
@ -32,17 +33,35 @@ def _parse_options():
parser.add_option('-v', '--verbose',
action='store_const', const=2, dest='verbosity_level',
help='more output (debug level)')
parser.add_option('--dump',
action='store_true', dest='dump',
help='dump debug log to file')
return parser.parse_args()[0]
def _setup_logging(verbosity_level):
def _setup_logging(verbosity_level, debug):
if verbosity_level == 0:
level = logging.WARNING
elif verbosity_level == 2:
level = logging.DEBUG
else:
level = logging.INFO
logging.basicConfig(format=settings.CONSOLE_LOG_FORMAT, level=level)
if not debug:
return
root = logging.getLogger('')
root.setLevel(logging.DEBUG)
formatter = logging.Formatter(settings.DUMP_LOG_FORMAT)
handler = logging.handlers.RotatingFileHandler(
settings.DUMP_LOG_FILENAME, maxBytes=102400, backupCount=3)
handler.setFormatter(formatter)
root.addHandler(handler)
if __name__ == '__main__':
try:
main()

View File

@ -68,7 +68,8 @@ class MpdSession(asynchat.async_chat):
data = ''.join(self.input_buffer).strip()
self.input_buffer = []
request = data.decode(ENCODING)
logger.debug(u'Input: %s', indent(request))
host, port = self.client_address
logger.debug(u'Input (%s:%s): %s', host, port, indent(request))
self.handle_request(request)
def handle_request(self, request):
@ -87,7 +88,8 @@ class MpdSession(asynchat.async_chat):
self.send_response(LINE_TERMINATOR.join(response))
def send_response(self, output):
logger.debug(u'Output: %s', indent(output))
host, port = self.client_address
logger.debug(u'Output (%s:%s): %s', host, port, indent(output))
output = u'%s%s' % (output, LINE_TERMINATOR)
data = output.encode(ENCODING)
self.push(data)

View File

@ -29,6 +29,14 @@ BACKENDS = (
CONSOLE_LOG_FORMAT = u'%(levelname)-8s %(asctime)s' + \
' [%(process)d:%(threadName)s] %(name)s\n %(message)s'
#: The log format used for dump logs. Default::
#: DUMP_LOG_FILENAME = CONSOLE_LOG_FORMAT
DUMP_LOG_FORMAT = CONSOLE_LOG_FORMAT
#: The file to dump debug log data to. Default::
#: DUMP_LOG_FILENAME = u'dump.log'
DUMP_LOG_FILENAME = u'dump.log'
#: Protocol frontend to use. Default::
#:
#: FRONTEND = u'mopidy.mpd.frontend.MpdFrontend'