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

10

Qual é a localização de um log convencional para processos executados em nome de usuários?

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

  • /var/log/foo.uid/ - os usuários que não são do 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.

por s4y 12.11.2012 / 08:02

3 respostas

5

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

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

    
por 12.11.2012 / 08:15
3

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

Dito isto, se o aplicativo for um aplicativo gráfico (em execução no X), sugiro seguir o Especificação de Diretório Base do XDG e elimine os logs em $XDG_DATA_HOME/foo/log/ com $XDG_DATA_HOME usando como padrão $HOME/.local/share . Isso tem uma desvantagem, no entanto. Você precisa trabalhar mais se quiser agregar os logs por algum motivo - com a solução anterior, um cat /var/log/foo.*/* teria sido suficiente.

    
por 12.11.2012 / 08:51
3

Como /var/log não é gravável pelos usuários e, se você não quiser manter os logs em seus respectivos diretórios iniciais, sugiro usar /var/tmp/foo.logs.uid , que seria gravável pelos usuários e centralizado.

    
por 12.11.2012 / 09:18