Question

J'ai une application ASP.NET pour laquelle nous avons écrit notre propre module de journalisation.

Ma question est la suivante : où se trouve l'emplacement standard pour écrire un fichier journal ?C'est à dire.le site Web fonctionnera sous l'identité d'un utilisateur anonyme (par ex.IUSR sur IIS7) et j'ai besoin d'un endroit où je sais qu'il aura la permission d'écrire.

Acclamations,

Était-ce utile?

La solution

Dossier App_Data à la racine du projet.Il n'est pas diffusé pour les requêtes Web ;donc les autres ne peuvent pas fouiner.

Autres conseils

Je suggérerais de placer le fichier journal sur un disque séparé, mais cela devrait vous donner un petit gain de performances afin de ne pas essayer de lire et d'écrire sur le même disque que le site Web.Si vous ne pouvez pas placer le fichier journal sur un disque séparé, je choisirais simplement un dossier de votre choix.

Dans tous les cas, vous devrez donner au compte « Service réseau » les autorisations « Modifier » sur le dossier souhaité.

Si, par contre, vous avez accès à une base de données, enregistrez-y les informations.Ce sera beaucoup plus rapide que l’accès au disque dur et ne sera pas accessible au public.Vous pourrez également créer des rapports à partir des données assez facilement.

Je ne suis pas en mesure de modifier les autorisations sur les dossiers (en particulier en dehors du dossier de départ du répertoire virtuel) et je n'ai pas déjà de dossier App_Data, j'hésite donc un peu à y aller.

Donc pour le moment, je vais avec le dossier CommonApplicationData.

  • Sur Vista/Server 2008, il s'agit de C:\ProgramData\
  • Sur XP/Server 2003, il s'agit de C:\Documents and Settings\All Users\Application Data\

Je ne suis pas en mesure de modifier les autorisations sur les dossiers (en particulier en dehors du dossier de départ du répertoire virtuel) et je n'ai pas déjà de dossier App_Data, j'hésite donc un peu à y aller.

Si vous avez un site Web, vous avez clairement un dossier quelque part.Ne pouvez-vous pas ajouter un sous-dossier (non Web) ?Il semble que ce serait un endroit plus approprié pour placer vos journaux que de les vider dans un dossier global partagé.

Vous pouvez également vous connecter au journal des événements Windows ou à une table d'une base de données.À quelle fréquence les gens consultent-ils le journal des événements ?S'il est examiné régulièrement, écrire dans un tableau facilite grandement le reporting car il est trivial d'inverser l'ordre et d'afficher uniquement les X derniers événements pour la période en cours.Le journal des événements Windows, vous pouvez également interroger le journal des événements Windows via PowerShell ou avec LogParser.

Pousser app_data est la meilleure idée, gardez simplement à l'esprit que lors de la publication des projets, si l'option "Supprimer tous les fichiers existants avant la publication" est cochée, alors les données actuelles dans le dossier disparaîtront.La solution de contournement consiste à ignorer la suppression du dossier app_data.

Une autre option pour effectuer la journalisation consiste à utiliser un framework existant tel que Log4net.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top