from bottle import request, response import logging def logger_plugin(callback): """ Bottle plugin to use logging module http://bottlepy.org/docs/dev/plugindev.html Wrap a Bottle request so that a log line is emitted after it's handled. (This decorator can be extended to take the desired logger as a param.) """ def wrapper(*args, **kwargs): actual_response = callback(*args, **kwargs) if not request.url.endswith("/health"): logging.info('%s %s %s %s' % (request.remote_addr, request.method, request.url, response.status)) return actual_response return wrapper