O que o logger -f filename faz?

4

A página do manual está formulada de forma ambígua:

-f file    Log the specified file.

Há um exemplo na página man sem mais explicações:

logger -p local0.notice -t HOSTIDM -f /dev/idmc

POSIX não ajuda:

The logger utility saves a message, in an unspecified manner and format, containing the string operands provided by the user. The messages are expected to be evaluated later by personnel performing system administration tasks.

Eu esperaria que ele registrasse:

  • para o arquivo
  • algo sobre o arquivo
  • ou algo de o arquivo

No entanto, se eu fizer o seguinte:

$ echo "contents" > testfile
$ logger -f ./testfile "test message"
$ cat testfile
contents
$ tail /var/log/messages
Aug  4 10:00:00 hostname logger: test message

Não obtenho nada que tenha a ver com "testfile" ou seu conteúdo, nem seu conteúdo é alterado. Se testfile não existir antes de emitir o comando logger , recebo esta mensagem de erro:

logger: ./testfile: No such file or directory.

O que o logger -f deve fazer?

    
por Dennis Williamson 04.08.2010 / 17:19

1 resposta

7

A documentação do GNU é um pouco mais clara e forneceu uma sugestão para mais teste:

-f file
--file=file
Log the content of the specified file. If file is ‘-’ the standard input is assumed.

Acontece que a especificação de uma mensagem substitui a especificação de um arquivo.

Então, isso funciona:

logger -f testfile

e registra o conteúdo do arquivo no arquivo de log. Se o arquivo consistir em várias linhas, cada linha se torna uma entrada separada no log.

    
por 04.08.2010 / 17:21

Tags