Onde devo colocar meu arquivo de log para um aplicativo asp.net?
-
08-06-2019 - |
Pergunta
Eu tenho um aplicativo ASP.NET para o qual escrevemos nosso próprio módulo de log.
Minha pergunta é: onde é o local padrão para gravar um arquivo de log?Ou sejao site estará funcionando como a identidade do usuário anônimo (por exemplo,IUSR no IIS7) e preciso de um local onde sei que terá permissão para escrever.
Saúde,
Solução
Pasta App_Data na raiz do projeto.Não é veiculado para solicitações da web;então outras pessoas não podem bisbilhotar.
Outras dicas
Eu sugeriria colocar o arquivo de log em um disco separado, embora isso deva proporcionar um pequeno ganho de desempenho para que você não tente ler e gravar no mesmo disco do site.Se você não conseguir colocar o arquivo de log em um disco separado, basta escolher uma pasta de sua preferência.
Em qualquer caso, você terá que conceder à conta "Serviço de Rede" permissões "Modificar" para a pasta desejada.
Se, por outro lado, você tiver acesso a um banco de dados, registre as informações nele.Será muito mais rápido do que acessar o disco rígido e não estará disponível publicamente.Você também poderá gerar relatórios a partir dos dados com bastante facilidade.
Não estou em condições de modificar as permissões nas pastas (especialmente fora da pasta inicial do diretório virtual) e ainda não tenho uma pasta App_Data, por isso estou um pouco hesitante em fazer isso.
Então, no momento, vou usar a pasta CommonApplicationData.
- No Vista/Server 2008 é C:\ProgramData\
- No XP/Server 2003 é C:\Documents and Settings\All Users\Application Data\
Não estou em condições de modificar as permissões nas pastas (especialmente fora da pasta inicial do diretório virtual) e ainda não tenho uma pasta App_Data, por isso estou um pouco hesitante em fazer isso.
Se você tem um site, claramente tem uma pasta em algum lugar.Você não pode adicionar uma subpasta (não voltada para a Web)?Parece que esse seria um local mais apropriado para colocar seus logs do que despejá-los em uma pasta compartilhada global.
Você também pode registrar no log de eventos do Windows ou em uma tabela em um banco de dados.Com que frequência as pessoas olham o log de eventos?Se estiver sendo examinado regularmente, escrever em uma tabela torna o relatório muito mais fácil, pois é trivial reverter a ordem e mostrar apenas os últimos X eventos do período atual.O log de eventos do Windows você também pode consultar o log de eventos do Windows por meio PowerShell ou com LogParser.
Enviar o app_data é a melhor ideia, mas lembre-se, ao publicar os projetos, se a opção "Excluir todos os arquivos existentes antes de publicar" estiver marcada, os dados atuais da pasta desaparecerão.A solução alternativa é pular a exclusão da pasta app_data.
Outra opção para fazer log é usar alguma estrutura existente, como Log4net.