Uma solução é verificar o $ programname (que é preenchido com o valor de $ InputFileTag no cliente para cada arquivo monitorado).
Configuração do cliente
No cliente, crie seu (s) monitor (es) de arquivos e certifique-se de que $ InputFileTag comece com 'file-'. Aqui está um exemplo com arquivos de log foo e bar:
######################### START /var/log/foo.log
$InputFileName /var/log/foo.log
$InputFileTag file-foo:
$InputFileStateFile stat-foo
$InputFileSeverity info
$InputRunFileMonitor
######################### END /var/log/foo.log
######################### START /var/log/bar.log
$InputFileName /var/log/bar.log
$InputFileTag file-bar:
$InputFileStateFile stat-bar
$InputFileSeverity info
$InputRunFileMonitor
######################### END /var/log/bar.log
Configuração do servidor
E, no servidor, verifique se $ programname começa com 'file-' (como deveria ser o caso de todos os monitores de arquivos, mas não de qualquer mensagem syslog padrão). Aqui está um exemplo:
$template FileTemplate,"/var/log/remote-%HOSTNAME%-%programname%.log"
if $programname startswith 'file-' then -?FileTemplate
& ~
- Esta solução verifica se o $ programname começa com 'file -'
- Desde que você tenha controle sobre como rotular $ InputFileTag (no cliente), essa solução funciona muito bem
- O modelo usa nome do programa e nome do host para manter nomes de arquivos exclusivos no servidor
- O & ~ garante que esta mensagem do syslog não seja processada mais abaixo na configuração
- Esta solução fornece uma configuração no servidor que não precisa ser atualizada sempre que você adiciona um novo monitor de arquivo no cliente.