Как создать уникальные имена журнальных файлов с помощью thread local в gunicorn wsgi app?

У меня есть приложение Django с логированием, настроенным с помощью dictConfig.

В рамках dictConfig я вызываю пользовательский обработчик файлов, который возвращает экземпляр FileHandler с именем файла.

Имя файла получается, если сделать экземпляр потока локальным и присвоить ему атрибут uuid.

Приложение обслуживается через gunicorn. Когда я тестирую приложение, делая два вызова через postman, журналы записываются в один и тот же файл.

Я думал, что wsgi создает уникальный процесс Django для каждого веб-запроса, но я думаю, что он создает процесс для каждого рабочего, который разделяет пространство памяти, что, как я полагаю, является причиной того, что имя файла остается неизменным после того, как Django устанавливает регистратор.

Как создать уникальные имена журнальных файлов с помощью thread local в gunicorn wsgi app? Или есть лучший подход?

Вернуться на верх