Tente isto:
# Redirect all kernel messages including dmesg to /var/log/dmesglog
:msg, contains, "mlan0" ~
kern.* :omfile:$dmesg_log_rotation
De acordo com a documentação do rsyslogd , você deve primeiro descartar as mensagens selecionadas.
Se você deseja colocar as mensagens filtradas em um arquivo separado, pode escrever algo como:
# Redirect all "mlan0" to /var/log/mlan.log
:msg, contains, "mlan0" :omfile:/var/log/mlan.log
:msg, contains, "mlan0" ~
# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.* :omfile:$dmesg_log_rotation
Infelizmente, o rsyslog não suporta a filtragem exatamente pelo nome do módulo do kernel, mas você pode tentar propriedades diferentes ( msg é apenas uma delas), e você pode especificar a regra de filtro com mais precisão regras " startswith ", " é igual " ou " regex ". A lista completa de propriedades e regras é aqui ( veja abaixo " Propriedades Disponíveis ".
Então você deve tentar, por exemplo:
:programname, startswith, "mlan" :omfile:/var/log/mlan.log
Ou:
:syslogtag, regex, "^mlan[0-9]" :omfile:/var/log/mlan.log
Não sei Se alguma propriedade conteria o modo kernel. De qualquer forma, você sempre pode filtrar por msg com regex .
:msg, regex, "^write-regex-matching-your-module-log-output" :omfile:/var/log/mlan.log