def process_response(self, request, response): code = response.status_code fields = dict(status_code=code) if 'content-type' in response: fields['content_type'] = response['content-type'] with log.fields(**fields): method = log.error if code >= 500 else log.info method('Request processed') request._logger_ctx.__exit__(None, None, None) response['X-Request-Id'] = request.uuid return response
#!/usr/bin/env python from twiggy_goodies.setup import setup_logging from twiggy_goodies.threading import log def some_function(): log.info('inner function does not accept logger') log.info('but uses same field as caller') setup_logging(None) log.info('before request') with log.fields(request_id='foo'): log.info('bar has happened') some_function() log.info('after request, id gone')