Hey,
I have set up structlog in settings.py
as follows:
# Do not let Django configure default logging. We don't want to deal with overriding `AdminEmailHandler`/`mail_admins` and such.
# See: https://github.com/django/django/blob/main/django/utils/log.py
LOGGING_CONFIG = None
# processors used on both `structlog` and `logging` originated events
_common_processors = [
structlog.contextvars.merge_contextvars,
structlog.stdlib.add_logger_name,
structlog.stdlib.add_log_level,
structlog.processors.StackInfoRenderer(),
structlog.processors.UnicodeDecoder(),
structlog.processors.CallsiteParameterAdder(
{
structlog.processors.CallsiteParameter.PATHNAME,
structlog.processors.CallsiteParameter.LINENO,
}
),
]
# Configure `structlog`
structlog.configure(
processors=[
structlog.stdlib.filter_by_level,
*_common_processors,
structlog.stdlib.ProcessorFormatter.wrap_for_formatter,
],
logger_factory=structlog.stdlib.LoggerFactory(),
wrapper_class=structlog.stdlib.BoundLogger,
)
# Configure `logging`
logging.config.dictConfig(
{
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"stdout": {
"()": structlog.stdlib.ProcessorFormatter,
"foreign_pre_chain": [
structlog.stdlib.ExtraAdder(),
*_common_processors,
],
"processors": [
structlog.stdlib.ProcessorFormatter.remove_processors_meta,
structlog.dev.ConsoleRenderer(colors=True),
],
},
},
"handlers": {
"stdout": {
"class": "logging.StreamHandler",
"formatter": "stdout",
},
"null": {
"class": "logging.NullHandler",
},
},
"loggers": {
"": {
"handlers": ["stdout"],
},
"my_project": {
"level": "INFO",
},
"django": {
"level": "INFO",
},
},
}
)
When running manage.py test --buffer ...
I still see the dots interspersed with log output. Any idea why this is not being buffered?