file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) logger.addHandler(file_handler) def log_to_logger(fn): ''' 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.) ''' @wraps(fn) def _log_to_logger(*args, **kwargs): request_time = datetime.now() actual_response = fn(*args, **kwargs) # modify this to log exactly what you need: logger.info('%s %s %s %s %s' % (request.remote_addr, request_time, request.method, request.url, response.status)) return actual_response return _log_to_logger app = Bottle() app.install(log_to_logger) @app.route('/') def home(): return ['hello, world'] app.run(host='0.0.0.0', port='8080', quiet=True)
def run_app(self): api_app = Bottle() api_app.install(log_to_logger) app.install(log_to_logger) api_app.mount('/api/', app) conf = self.get_config() api_app.config['host'] = conf['host'] api_app.config['port'] = conf['port'] api_app.run(host=api_app.config['host'], port=api_app.config['port'])