/ / Django settings module… não é possível rodar o logger? - python, django, log

Módulo de configurações do Django… não é possível executar o logger? - python, django, log

Eu uso o python logging módulo no meu my_app/views.py arquivo sem nenhum problema.

Eu tentei usá-lo dentro do staging_settings.py que eu uso para minha configuração. Mas as mensagens nunca chegam ao log de erros, enquanto as mensagens do views.py funciona bem.

meu staging_settings.py:

LOGGING= { ..redacted for space.. } # the logging config-dict

import logging
logger = logging.getLogger(__name__)
logger.debug(F"this is staging_ setup")

É apenas uma impossibilidade de executar um logger dentro de um setup.py? Eu acho que o servidor realmente não está funcionando ainda, então não há nada para o logger para enviar para "Eu estou executando isso em pythonanywhere, então eu realmente não tenho um console para simplesmente print() para ou alguma outra alternativa hack.

Respostas:

1 para resposta № 1

O log não é configurado no momento em que o arquivo de configurações é importado, portanto, você não pode fazer log a partir do nível do módulo. A sequência é

  1. O Django importa as configurações do seu staging_settings.py
  2. O Django busca o LOGGING dict com a configuração daquele módulo importado
  3. Django configura logging com a configuração
  4. Quando você logar qualquer coisa depois disso, logging então começa a saída de material de acordo com sua configuração

Você não pode esperar registrar e obter a saída de log na etapa 1.

Atualizar: AFAIK não existe uma forma independente do Djangode determinar quando o log foi configurado. Você pode definir seu próprio filtro que define um sinalizador quando instanciado, o que aconteceria durante a configuração. De qualquer forma, isso não ajuda se você precisa fazer o log do módulo de configurações no código de nível de módulo.No entanto, as funções que são definidas no módulo de configurações e são chamadas posteriormente (após o registro da configuração ter ocorrido) podem fazer log.