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 № 1O 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 é
- O Django importa as configurações do seu
staging_settings.py
- O Django busca o LOGGING dict com a configuração daquele módulo importado
- Django configura
logging
com a configuração - 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.