Log4Net dans WCF ne fonctionne pas
Salut, je suis en train d'utiliser Log4Net dans WCF IIS service hébergé, mais il n'a pas de journal de données.
Quelqu'un a atteint la journalisation dans WCF service à l'aide de Log4Net?
Doit avoir quelque chose à voir avec la façon dont vous avez configuré la configuration..vérifiez la eventvwr pour voir si il y a des erreurs répertoriées..aussi où vous avez spécifié le lof4net paramètres.
OriginalL'auteur RockWorld | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Je suis avec succès à l'aide de log4net sur mon projet au sein d'une auto-hébergé application WCF.
Nos étapes de configuration sont assez simples.
Ajouter la ligne suivante au-dessus du projet AssemblyInfo.cs fichier (permet une coutume log4net fichier de configuration, qui log4net va "regarder" pour les mises à jour. Rapide, mais peut-être un peu sale..)
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Ajouter log4net.fichier de configuration de la console de projet et le copier dans le répertoire de sortie (fichier de propriétés: "Copier dans le Répertoire de Sortie")
Déclarer le journal comme statique privée membres de les classes où vous avez besoin de journalisation:
Journal où cela est nécessaire:
Logger.Info("Starting console service host");
Cet article couvre assez bien: http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx
Autant que je sache, cela ne fonctionne pas lorsqu'il est hébergé dans IIS. Log4net ne trouve pas le fichier de config...
a travaillé pour moi dans IIS. Mais log4net.config doit avoir "copier dans le répertoire de sortie" dans VS. En d'autres termes, log4net.config doit être dans le dossier "emplacement" dans l'emplacement déployé dans IIS
c'est certainement le moyen de le faire. J'ai mis à jour ma réponse. notez que je n'ai mentionner que vous avez besoin de copier le fichier de configuration dans le répertoire de sortie.
Si vous postez sur ce stackoverflow.com/questions/552718/... j'ai pour niso sera upvote (je suis dans le processus de ce Q étant marqué comme duplkicate)
OriginalL'auteur Pero P.
Une autre chose à faire attention est que lorsque vous avez un custom WCF
ServiceHostFactory
définie dans un ensemble distinct de votre Wcf point de terminaison (par exemple, pour garder au SEC) puis à l'assemblée, où l'usine est définie est la "racine" de l'assemblée, du point de vue de log4net et laXmlConfigurator
attribut doit être déclaré au cours de cette assemblée.Cette FAQ http://logging.apache.org/log4net/release/faq.html#trouble-webapp-stops-logging et lié les commentaires expliquent que log4net veut initialiser dès que possible
OriginalL'auteur Peter McEvoy
À l'aide de l'attribut d'assemblage pour configurer log4net ne fonctionnera pas depuis log4net ne vérifiera pas le droit de répertoire pour le fichier de configuration. Peut-être que vous pourriez essayer d'utiliser certains de chemin d'accès relatif lorsque vous spécifiez le fichier de configuration, mais il est plus facile d'utiliser l'une des solutions proposées ici.
OriginalL'auteur Stefan Egli
Je suis à l'aide de log4net dans MSMQ activé WCF service hébergé dans IIS 7. J'utilise Ninject pour l'injection de dépendances et installé Ninject.Extensions.Wcf, Ninject.Extensions.La journalisation.log4net les packages NuGet et a ajouté log4net section de configuration Web.fichier de configuration.
J'ai vu des gens suggèrent l'ajout de log4net code d'initialisation de la Global.asax, mais cela ne fonctionne pas pour MSMQ des services activés pour autant que je peux dire. Cependant, Ninject installe WebActivator package qui permet d'exécuter du code d'initialisation lors de l'application web démarre. Ninject met son propre code dans App_Start\NinjectWebCommon.cs. Pour configurer log4net vous devez ajouter du code à la méthode de Démarrage. Le mien ressemble à ça:
OriginalL'auteur LeffeBrune