Como gerar log num arquivo e no console usando logging?
O jeito mais fácil de configurar a geração de log através do módulo logging (veja a documentação oficial) para diferentes destinos é usar a propriedade handlers do basicConfig:
import logging # ... logging.basicConfig( level=logging.INFO, format='%(asctime)s %(levelname)s - %(message)s', handlers=[ logging.FileHandler(__file__.replace('.py', '.log')), logging.StreamHandler(sys.stdout)])
Um handler define o que será feito com a mensagem de log.
No exemplo acima, logging.FileHandler incluirá a mensagem num arquivo de log e logging.StreamHandler exibirá a mensagem no console. Neste exemplo, o arquivo gerado pelo logging.FileHandler terá o mesmo nome do arquivo Python que contem esse código.
Se precisar rotacionar o arquivo de log, experimente usar logging.RotatingFileHandler ou logging.TimedRotatingFileHandler.