Как динамически изменить уровень логирования для всех "django apps", которые работают с мультипроцессом "daphne"?
Я разрабатываю бэкенд API сервиса, состоящий из "nginx + daphne + django". В 'nginx' и 'daphne', несколько "рабочих" обрабатывают запросы. Журнал "django app" в настоящее время настроен на вывод в stdout/stderr обработчиком потока, который "daphne" записывает в указанный файл
The log handlers set in the settings.py file are as follows.
===============================================================
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
===============================================================
The daphne contents set in the supervisor.conf file are as follows.
===============================================================
[fcgi-program:asgi]
# TCP socket used by Nginx backend upstream
socket=tcp://ipaddress:port
# Directory where your site's project files are located
directory=/my/path/project
# Each process needs to have a separate socket file, so we use process_num
# Make sure to update "mysite.asgi" to match your project name
command=daphne -u /my/path/supervisord/daphne%(process_num)d.sock --fd 0 --access-log /dev/null --proxy-headers myproject.asgi.deploy:application
# Number of processes to startup, roughly the number of CPUs you have
numprocs=8
# Give each process a unique name so they can be told apart
process_name=asgi%(process_num)d
# Automatically start and recover processes
autostart=true
autorestart=true
# Choose where you want your log to go
stdout_logfile=/my/path/logs/asgi.log
redirect_stderr=true
===============================================================
Кроме того, мне также необходимо предоставить API, который может динамически изменять уровень журнала "django app" без прерывания работы сервиса. Если Daphne обслуживает "Django Apps" и Daphne имеет несколько процессов, как мне обеспечить изменение уровня журнала для всех Django Apps? (Должен ли я сохранять уровень журнала в том же месте, что и "Redis", и проверять уровень журнала каждый раз, когда обрабатываю запрос?) (Есть ли простой способ использовать метод, предоставляемый Python logging?)