Bem, eu peguei o rsyslog do seu git, fiz um ramificar da linha mais próxima para o que meu sistema está executando e corrigiu :
2013-11-30 13:39:59 localhost sshd[17331]: Accepted publickey for kaz from 192.1...
O que está acima é agora produzido graças a estas rsyslog.conf
lines:
$template CustomFormat,"%timegenerated:::date-strftime(%Y-%m-%d %H:%M:%S)% %HOSTNAME% %syslogtag%%msg%0\n"
$ActionFileDefaultTemplate CustomFormat
O formato dado na questão é apenas %b %d %Y %H:%M:%S
.
A novidade é date-strftime(...)
, que especifica uma propriedade de data baseada na formatação strftime
.
Isso é aplicado ao tempo na mensagem de log (seja tempo recebido ou tempo gerado).
Tendo entrado em contato com esta base de código, agora vou tomar banho e mergulhar na banheira.
Atualização de fevereiro de 2016:
Parece que este tópico surgiu em uma lista de discussão do rsyslogd em 2014, com uma referência para esta questão do Unix Stackexchange (o autor original reclama que date-strftime
não está funcionando na versão do rsyslogd que ele está usando. Não está brincando!)
Isso resultou na edição 65 que ignora completamente a existência do meu patch strftime
-based e segue com uma abordagem desajeitada com itens de substituição personalizados para o dia da semana, hora, ano e assim por diante. Por exemplo, para obter o ano, você precisa usar %timestamp:::date-year%
. Este %timestamp:::xxx
verbosity deve ser repetido para cada elemento da data!
Assim, %timestamp:::date-strftime(%Y-%m-%d %H:%M:%S)
se transforma em:
%timestamp:::date-year%-%timestamp:::date-month%-%timestamp:::date-day% %timestamp:::date-hour%:%timestamp:::date-minute%:%timestamp:::date-second%
Bom sofrimento!