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,

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top