Eu tenho um aplicativo que deve registrar cada transação. Toda mensagem de log é liberada porque precisamos ter um registro do que ocorreu antes da falha. Meus colegas e eu estávamos curiosos sobre como obter os efeitos de desempenho do buffer, garantindo que a mensagem de log havia saído do processo.
O que criamos é:
- faça um FIFO no qual o aplicativo possa gravar e
- redirecionar o conteúdo desse FIFO para um arquivo regular via
cat
.
Ou seja, o que era normalmente:
app --logfile logfile.txt
é agora:
mkfifo logfifo
cat logfifo &> logfile.txt &
app --logfile logfifo
Existem algumas dicas para essa abordagem? Funcionou quando o testamos, mas queremos ter certeza absoluta de que as mensagens encontrarão o caminho para o arquivo de redirecionamento, mesmo se o aplicativo original travar.
(Não temos o código-fonte para o aplicativo, portanto, as soluções de programação estão fora de questão. Além disso, o aplicativo não grava stdout
, portanto, a canalização direta para um comando diferente está fora de questão. Portanto, syslog
não é uma possibilidade .)
Atualização: eu adicionei uma recompensa. A resposta aceita não envolverá logger
pela simples razão de que nãologger
é isso que perguntei. Como afirma a pergunta original, estou apenas procurando dicas no uso de um FIFO.