Comment écrire dans un journal des événements personnalisés?
J'essaie d'obtenir mon .Net Windows Service à droit à un journal des événements personnalisés. Je suis en utilisant EventLogInstaller
pour créer le journal des événements et de la source lorsque l'application est installée. J'ai lu ici qu'il faut du temps pour les Windows pour enregistrer la source afin qu'ils reviennent au redémarrage de l'application avant d'essayer d'écrire dans le journal.
Que c'est un Service Windows, je n'avais pas envie de forcer un redémarrage de l'ordinateur ou d'obtenir à l'utilisateur de démarrer le service manuellement, donc j'utilise ce code pour attendre le journal d'exister et de démarrer le service automatiquement.
while (!(EventLog.Exists("ManageIT") || EventLog.SourceExists("ManageIT Client Service")))
{
Thread.Sleep(1000);
}
System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("ManageIT.Client.Service");
controller.Start();
Mon problème est que les événements de ce service sont toujours écrites dans le Journal des Applications et bien que je ne peux voir mon journal personnalisé dans l'Éditeur du Registre, il ne s'affiche pas dans Windows 7 Observateur d'Événements.
Toute aide sera très appréciée.
Ouais, moi aussi. Et je suis furieux.
OriginalL'auteur TheDuke | 2010-05-23
Vous devez vous connecter pour publier un commentaire.
Essayez de cet extrait:
edition - mise en garde: si l'utilisateur qui exécute le code n'a pas de droits d'administrateur, ce lèvera une exception. Depuis c'est le cas (et si l'utilisateur n'aura pas ces droits) les meilleures pratiques devraient être de supposer que le journal existe, et il suffit d'écrire pour elle. voir: La source n'a pas été trouvé, mais certains ou tous les journaux des événements n'a pas pu être fouillé
bien que déjà approuvé, je pense honnêtement que la modification doit être d'un commentaire ou d'une autre réponse. Ce n'est pas le premier ni le dernier "mauvaise" réponse acceptées sur la question. Juste parce que la question a accepté de répondre, il ne le faites pas, il ne répond pas.
Je suis identifié avec l'edit parce que j'ai revu quelqu'un d'autre, de modifier et de le rendre clair ce qui a été ajoutée bien que je suis d'accord il y a un cas, et ce pour un commentaire.
Pensé pour sûr que j'ai enveloppé que, dans la modifier [/edit] les crochets, mais je ne crois pas. thx pour la fixation de la.. j'ai édité la réponse parce que j'ai été incapable d'ajouter un commentaire, et en ajoutant un autre dupliqué réponse avec seulement un inconvénient supplémentaire qui seraient les plus susceptibles de ne pas être marqué de la réponse, car il est tellement vieux semblait être une idée stupide, et probablement rencontré des gens se plaindre que je devrais avoir édité la réponse (qui s'est passé avant)..
Se concentrer sur TheDuke du problème (premier commentaire) les gars, parce que je suis également confronté à maintenant. Merci.
OriginalL'auteur sventevit
Par défaut lorsqu'un service est installé, la source s'associe avec le Journal d'Application.
Si nous modifions cette association à un moment plus tard, le système a besoin d'un redémarrage.
On peut cependant empêcher l'association du service avec le journal d'application, en définissant la fonction autolog valeur false à la propriété dans la classe de service (classe qui hérite de servicebase) constructeur.
http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.autolog.aspx
OriginalL'auteur Madhulika
On dirait que vous vous êtes écrit dans le journal des événements comme ceci:
Cela permettra d'écrire dans le journal d'application.
Si vous utilisez le code de simons post avec la création de myLogger, vous pouvez spécifier le nom du Journal.
OriginalL'auteur Shiraz Bhaiji
J'ai fait quelque chose comme ceci:
EventLog.SourceExists
provoque les OS d'énumérer les journaux disponibles, et quand il frappe de la "Sécurité" du journal, vous obtiendrez une erreur pour un non-utilisateur élevésBon à savoir. Merci! Je n'ai pas couru dans que encore parce que les comptes de service nous avons des privilèges élevés.
OriginalL'auteur C0r3yh