2017-01-28 01:34:21 +00:00
|
|
|
import uuid
|
2017-07-24 11:21:15 +01:00
|
|
|
from importlib import reload
|
|
|
|
|
2016-12-23 05:00:57 +00:00
|
|
|
from sanic.response import text
|
2017-09-13 07:42:42 +01:00
|
|
|
from sanic.log import LOGGING_CONFIG_DEFAULTS
|
2016-12-23 05:00:57 +00:00
|
|
|
from sanic import Sanic
|
|
|
|
from io import StringIO
|
|
|
|
import logging
|
|
|
|
|
|
|
|
logging_format = '''module: %(module)s; \
|
|
|
|
function: %(funcName)s(); \
|
|
|
|
message: %(message)s'''
|
|
|
|
|
2017-01-28 01:34:21 +00:00
|
|
|
|
2017-07-24 11:21:15 +01:00
|
|
|
def reset_logging():
|
|
|
|
logging.shutdown()
|
|
|
|
reload(logging)
|
|
|
|
|
|
|
|
|
2016-12-23 05:00:57 +00:00
|
|
|
def test_log():
|
|
|
|
log_stream = StringIO()
|
|
|
|
for handler in logging.root.handlers[:]:
|
2017-01-28 01:34:21 +00:00
|
|
|
logging.root.removeHandler(handler)
|
2016-12-23 05:00:57 +00:00
|
|
|
logging.basicConfig(
|
|
|
|
format=logging_format,
|
|
|
|
level=logging.DEBUG,
|
|
|
|
stream=log_stream
|
|
|
|
)
|
|
|
|
log = logging.getLogger()
|
2017-01-17 23:38:20 +00:00
|
|
|
app = Sanic('test_logging')
|
2017-01-28 01:34:21 +00:00
|
|
|
rand_string = str(uuid.uuid4())
|
|
|
|
|
2016-12-23 05:00:57 +00:00
|
|
|
@app.route('/')
|
|
|
|
def handler(request):
|
2017-01-28 01:34:21 +00:00
|
|
|
log.info(rand_string)
|
2016-12-23 05:00:57 +00:00
|
|
|
return text('hello')
|
|
|
|
|
2017-02-14 19:51:20 +00:00
|
|
|
request, response = app.test_client.get('/')
|
2017-01-28 01:34:21 +00:00
|
|
|
log_text = log_stream.getvalue()
|
|
|
|
assert rand_string in log_text
|
2017-09-13 07:42:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
def test_logging_defaults():
|
|
|
|
reset_logging()
|
|
|
|
app = Sanic("test_logging")
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('root').handlers]:
|
|
|
|
assert fmt._fmt == LOGGING_CONFIG_DEFAULTS['formatters']['generic']['format']
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('sanic.error').handlers]:
|
|
|
|
assert fmt._fmt == LOGGING_CONFIG_DEFAULTS['formatters']['generic']['format']
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('sanic.access').handlers]:
|
|
|
|
assert fmt._fmt == LOGGING_CONFIG_DEFAULTS['formatters']['access']['format']
|
|
|
|
|
|
|
|
|
|
|
|
def test_logging_pass_customer_logconfig():
|
|
|
|
reset_logging()
|
|
|
|
|
|
|
|
modified_config = LOGGING_CONFIG_DEFAULTS
|
|
|
|
modified_config['formatters']['generic']['format'] = '%(asctime)s - (%(name)s)[%(levelname)s]: %(message)s'
|
|
|
|
modified_config['formatters']['access']['format'] = '%(asctime)s - (%(name)s)[%(levelname)s]: %(message)s'
|
|
|
|
|
|
|
|
app = Sanic("test_logging", log_config=modified_config)
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('root').handlers]:
|
|
|
|
assert fmt._fmt == modified_config['formatters']['generic']['format']
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('sanic.error').handlers]:
|
|
|
|
assert fmt._fmt == modified_config['formatters']['generic']['format']
|
|
|
|
|
|
|
|
for fmt in [h.formatter for h in logging.getLogger('sanic.access').handlers]:
|
|
|
|
assert fmt._fmt == modified_config['formatters']['access']['format']
|