como usar o syslog para evitar que o arquivo de log seja distorcido quando vários processos estão tentando gravar no mesmo arquivo de log?

como usar o syslog para evitar que o arquivo de log seja distorcido quando vários processos estão tentando gravar no mesmo arquivo de log?

Eu queria saber o uso do syslog quando vários processos estão tentando gravar no mesmo arquivo de log, como

for i in $var
do
some process >> logfile &
done
wait

Responder1

Você pode fazer

some process | logger &

para gerar processos e ter sua saída direcionada para o syslog. Observe que o recurso padrão será “usuário” e o nível padrão “aviso”. Você pode alterá-los usando a -popção.

A razão pela qual isso funciona sem problema é que os processos não gravam diretamente no arquivo de destino. Eles enviam suas mensagens para o daemon syslog, que gerencia a gravação no(s) arquivo(s) apropriado(s). Pelo que entendi, a atomicidade seria baseada em linhas, ou seja, cada linha de saída de um processo iria para o syslog sem interferência, mas mensagens multilinhas poderiam misturar linhas de outros processos.

informação relacionada