exclui o recurso de syslog de todos os outros

3

Estou adicionando um registro customizado em local0 no syslog.

Escrever estas mensagens para um log específico é fácil, no meu syslog.conf eu tenho

local0.* -/var/log/my.log

Mas como posso excluir local0 de todos os outros registros? Na minha configuração atual, as mensagens local0 também aparecem em / var / log / syslog, uma vez que são especificadas como

*.*;auth,authpriv.none -/var/log/syslog

Eu preciso passar por todos os outros registros padrão e adicionar local0.none, ou há algum tipo de exclusão global que eu possa usar?

    
por Ben K. 01.02.2011 / 21:31

2 respostas

3

No syslog, eu tenho medo que sua suposição esteja correta, você tem que fazer isso adicionando local0.none a cada linha do syslog que você não quer local0.

Se você está procurando por outras opções rsyslog está presente hoje em dia (todas as crianças legais adoram isso), e vai realmente deixar você faz o que está pedindo (confira aqui ).

O syslog-ng permite que você faça o que está pedindo e tenha Cool filtragem por seqüências de caracteres mesmo (verificar aqui ), eu usá-lo para o syslogging avançado no meu servidor de coletor de log.

    
por 01.02.2011 / 22:23
6

A página man do syslogd afirma que o ponto de exclamação é usado como uma notação para excluir as prioridades especificadas, e que "Você pode usá-lo intuitivamente como um especificador de exceção". O exemplo dado é

mail.*;mail.!=info              /usr/adm/mail

que registraria todas as mensagens de e-mail, exceto aquelas com prioridade "info". Então, para o seu problema, eu usaria

*.*;local0.!debug;auth,authpriv.none /var/log/syslog

ou, mais legível,

*.*;local0.none;auth,authpriv.none /var/log/syslog

No entanto, você deve estar ciente de que não consegui testar isso.

    
por 01.02.2011 / 22:24