saída do script python não será direcionada para o arquivo

1

Eu tenho um script python. Ele tem um SimpleLogger com sys.stdout como output_stream .

logger = SimpleLogger(level=LogLevel.DEBUG)

Quando eu o executo no console, obtenho os logs corretamente, mas sempre que redireciono a saída para um arquivo, nada é encontrado no destino.

Eu tentei várias maneiras:

  1. python server.py > /tmp/x.log 2 > & 1
  2. python server.py > /tmp/x.log

Em ambos os casos, o /tmp/x.log está vazio.

Eu também tentei nohup python server.py , mas nada foi escrito em nohup.out .

    
por Zeinab Abbasimazar 01.09.2018 / 08:15

1 resposta

3

Isso provavelmente é devido apenas ao buffering. Você só verá algo no arquivo quando houver uma saída suficiente acumulada. Você pode tentar usar python -u para solicitar saída sem buffer ou definir a variável de ambiente PYTHONUNBUFFERED= para qualquer sequência não vazia, conforme documentado no Python campo de comando ou adicione uma chamada .flush() após cada .debug() ou chamada semelhante.

    
por 01.09.2018 / 11:30