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
.
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.
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
.
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.
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.