Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion sap/cf_logging/falcon_logging/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class FalconContext(Context):
""" Stores logging context in Falcon's request object"""

def set(self, key, value, request):
request.context[key] = value
if request:
request.context[key] = value

def get(self, key, request):
return request.context.get(key) if request else None
5 changes: 3 additions & 2 deletions sap/cf_logging/flask_logging/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class FlaskContext(Context):
""" Stores logging context in Flask's request scope """

def set(self, key, value, request):
setattr(g, key, value)
if g:
setattr(g, key, value)

def get(self, key, request):
return getattr(g, key, None)
return getattr(g, key, None) if g else None
2 changes: 1 addition & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ pytest-cov==2.5.1
pytest-mock==1.6.3
pylint==1.9.2
tox
django
django < 2.2
10 changes: 10 additions & 0 deletions tests/test_falcon_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,16 @@ def test_web_log():
""" That the custom properties are logged """
_user_logging({}, {'myprop': 'myval'}, {'myprop': v_str('myval')})

def test_logging_without_request():
""" Test logger is usable in non request context """
app = falcon.API()
_set_up_falcon_logging(app)
cf_logging.FRAMEWORK.context.set_correlation_id('value')

logger, stream = config_logger('main.logger')
logger.info('works')
assert check_log_record(stream, JOB_LOG_SCHEMA, {'msg': v_str('works')}) == {}


def test_correlation_id():
""" Test the correlation id is logged when coming from the headers """
Expand Down
9 changes: 9 additions & 0 deletions tests/test_flask_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,15 @@ def test_correlation_id():
{'correlation_id': v_str('298ebf9d-be1d-11e7-88ff-2c44fd152860')})


def test_logging_without_request():
""" Test logger is usable in non request context """
app = Flask(__name__)
_set_up_flask_logging(app)
logger, stream = config_logger('main.logger')
logger.info('works')
assert check_log_record(stream, JOB_LOG_SCHEMA, {'msg': v_str('works')}) == {}


# Helper functions
def _set_up_flask_logging(app, level=logging.DEBUG):
cf_logging._SETUP_DONE = False
Expand Down