Eu tenho um script python. Tem um SimpleLogger
com sys.stdout
como output_stream
.
logger = SimpleLogger(level=LogLevel.DEBUG)
Quando executo no console, recebo os logs corretamente, mas sempre que redireciono a saída para um arquivo, nada é encontrado no destino.
Tentei de várias maneiras:
- python server.py > /tmp/x.log 2>&1
- 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 nohup.out
.
Isso provavelmente é apenas devido ao buffer. Você só verá algo no arquivo quando a saída suficiente tiver sido acumulada. Você pode tentar usar
python -u
para solicitar saída sem buffer ou definir a variável de ambientePYTHONUNBUFFERED=
para qualquer string não vazia, conforme documentado na documentação da linha de comando do Python , ou adicionar uma.flush()
chamada após cada.debug()
chamada ou semelhante.