* convenção nix para armazenar logs de usuário?

10

O que é um local de log convencional para processos executados em nome dos usuários?

  • ~/.foo/logs/ - minha melhor escolha, mas não super incrível

  • /var/log/foo.uid/ - Usuários não pertencentes ao sistema não podem criar diretórios aqui, precisam de cooperação para criar em primeiro lugar.

  • Um arquivo comum em /var/log/(por exemplo /var/log/foo.log) - Não é privado

  • etc.

s4y
fonte

Respostas:

5

Eu sugeriria ir /var/log/foo.uid/, porque /var/log/é o meu primeiro local para procurar registros em um servidor.

Outra opção é usar sua primeira opção ~/.foo/logs/e criar um link simbólico para ele em /var/log.

pkhamre
fonte
Na verdade, eu quis dizer identificação de usuário, não PID (ou seja, mais de um usuário pode estar executando um programa ao mesmo tempo e todos precisam de seus próprios locais de log).
S4y
Oh! Meu erro, ainda é cedo demais na segunda-feira de manhã. Então faz sentido adicionar o uidnome de usuário ou.
Pkhamre 12/11/12
3

Embora /var/logseja o local canônico para procurar logs, como aponta @pkhamre, não vejo a necessidade de poluir a pasta com logs gerados por "usuário". Eu preferiria apenas serviços em todo o sistema para fazer logon /var/log.

Dito isso, se o aplicativo for um aplicativo GUI (executando no X), sugiro seguir a Especificação do diretório base do XDG e soltar os logs $XDG_DATA_HOME/foo/log/com o $XDG_DATA_HOMEpadrão para $HOME/.local/share. Isso tem uma desvantagem, no entanto. Você precisará trabalhar mais se quiser agregar os logs por algum motivo - com a solução anterior, isso cat /var/log/foo.*/*seria suficiente.

zhenech
fonte
3

Como /var/lognão é gravável pelos usuários e se você não deseja manter os logs em seus respectivos diretórios pessoais, sugiro usar /var/tmp/foo.logs.uidquais seriam graváveis ​​pelos usuários e centralizados.

jlliagre
fonte