Estou usando o syslog-ng para isso, você pode configurar o syslog-ng em sua máquina local para ler o arquivo de destino (ou você pode fazer seu log de aplicativo para syslog) e enviá-lo para uma máquina de destino onde todos os logs são mesclados em um ou divididos em arquivos diferentes e até mesmo uma estrutura de diretórios.
No lado do cliente
source yourservice {
file("/var/log/xxx.log" follow_freq(1) flags(no-parse));
};
destination yourcollector {
tcp("xx.xx.xx.xx" port(65140));
};
log { source(yourservice); destination(yourcollector); };
Em seguida, no servidor de colecionador
source yourservice {
tcp(port(65140) keep-alive(yes));
};
destination yourservice_dir { file("/var/log/yourservice/$YEAR/$MONTH/yourlog-$YEAR-$MONTH-$DAY" create_dirs(yes) template("$MESSAGE\n") template_escape(no));};
log { source(yourservice); destination(yourservice_dir); };
Você pode alterar os parâmetros no destino para adicionar ou remover variáveis para dividi-lo em um ou mais registros