EventLog WriteEntry ne pas écrire de journal choisi, mais au journal d'Application
J'ai une application dans laquelle je veux écrire des entrées de journal des événements
L'enregistreur est instancié par le MEF.
J'ai créé une classe dérivée, pour être en mesure d'effectuer le journal d'initialisation avant de l'utiliser.
Mon code est comme ci-dessous:
public class WinEventLog : EventLog, ILogger
{
private const string LOG_SourceName = "DataGen_Source";
private const string LOG_SysLogName = "Pool_Log";
private bool _isInitialized = false;
public WinEventLog()
: base()
{
Initialize();
}
public void LogMessage(MessageLevel level, string message)
{
WriteEntry(message, level.EventLogType());
}
public void LogMessage(string source, MessageLevel level, string message)
{
WriteEntry(source, message, level.EventLogType());
}
public void Initialize()
{
if (!_isInitialized)
{
this.BeginInit();
this.EndInit();
if (!System.Diagnostics.EventLog.SourceExists(LOG_SourceName))
{
System.Diagnostics.EventLog.CreateEventSource(
LOG_SourceName, LOG_SysLogName);
}
Source = LOG_SourceName;
Log = LOG_SysLogName;
_isInitialized = true;
}
}
}
Cependant, l'enregistreur n'est pas d'écrire dans le journal je précise, Pool_Log, mais dans le journal des Applications.
Une idée de pourquoi cela se produit?
MODIFIER
Que j'ai référencé exactement la même composant à partir d'un autre projet, et dans cette situation, il a écrit pour le bon Journal !!!
Je suis perplexe!
Grâce
Je rencontre exactement le même problème. Exactement le même composant peut écrire à l'événement spécifié source dans un projet, mais ne peut pas dans un autre projet, d'écrire quoique ce soit à la norme journal d'application.
Juste couru dans ce - résolu en redémarrant. Si vous avez créé à l'origine de la source, en vertu de l '"Application" puis changé plus tard pour "CustomApp, il faut un redémarrage pour que le système se comporte correctement, jusqu'à ce que votre redémarrage, vos événements vont continuer à paraître sous "Application".
Le redémarrage a également travaillé pour moi. Je suis allé si loin que la désinstallation du service que j'ai créé, vérification des attributs sur le journal des événements du programme d'installation de Visual Studio ajout, Suppression des clés de registre. Enfin essayé de redémarrer. Il a travaillé.
Juste couru dans ce - résolu en redémarrant. Si vous avez créé à l'origine de la source, en vertu de l '"Application" puis changé plus tard pour "CustomApp, il faut un redémarrage pour que le système se comporte correctement, jusqu'à ce que votre redémarrage, vos événements vont continuer à paraître sous "Application".
Le redémarrage a également travaillé pour moi. Je suis allé si loin que la désinstallation du service que j'ai créé, vérification des attributs sur le journal des événements du programme d'installation de Visual Studio ajout, Suppression des clés de registre. Enfin essayé de redémarrer. Il a travaillé.
OriginalL'auteur bzamfir | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
il semble que vous êtes la création de la source, mais pas la création du Journal par exemple je voudrais faire quelque chose comme si je voulais créer un SQLEventLog
laissez-moi savoir si cela aide.. regarde comme il vous manque un Journal de Création
OriginalL'auteur MethodMan
vous pouvez essayer ce qui suit :
OriginalL'auteur Giorgio Minardi
Votre erreur peut être liée à des autorisations. Vérifiez les autorisations sur les clés de registre de la source de l'événement.
Enfin, vous ne devriez pas utiliser WriteEntry, vous obtiendrez une Exception de Sécurité et d'autres questions.
À mon avis vous devriez utiliser WriteEvent plutôt voir: https://security.stackexchange.com/q/15857/396
OriginalL'auteur random65537
vérifier si la Source de Journal des Événements n'est pas long et ne contient pas de spécial et significatif des caractères tels que .\ ou ./
Dans mon cas, cela a été la cause de l'événement allait Journal d'Application au lieu d'désigné journal personnalisé.
OriginalL'auteur Reza Mortazavi