Configurez Log4Net dans une application Web

J’ai ce code et le fichier de configuration ci-dessous:

ILog log = LogManager.GetLogger(typeof(MyClass)); log.Debug("Testing"); 

TestProj répertoire TestProj n’est pas créé et si je le crée, pas de fichier TestLog.txt , pas de journal … rien.

Une idée?

Merci,

Le fichier de configuration

 

Vous devez appeler la fonction Configure du XmlConfigurator

 log4net.Config.XmlConfigurator.Configure(); 

Appelez soit avant votre premier appel ou dans votre Global.asax comme ceci:

 protected void Application_Start(Object sender, EventArgs e) { log4net.Config.XmlConfigurator.Configure(); } 

Une autre façon de faire serait d’append cette ligne à l’information d’assemblage de l’application Web:

 // Configure log4net using the .config file [assembly: log4net.Config.XmlConfigurator(Watch = true)] 

Semblable à Shriek.

1: Ajoutez la ligne suivante dans la classe AssemblyInfo

 [assembly: log4net.Config.XmlConfigurator(Watch = true)] 

2: Assurez-vous de ne pas utiliser le .Net Framework 4 Client Profile tant que Target Framework (je pense que cela ne vous dérange pas, car sinon, cela ne comstackrait même pas)

3: Assurez-vous de vous connecter très tôt dans votre programme. Sinon, dans certains scénarios, il ne sera pas initialisé correctement (en savoir plus sur la FAQ log4net ).

Donc, enregistrez quelque chose au démarrage de l’application dans le fichier Global.asax

 public class Global : System.Web.HttpApplication { private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e) { Log.Info("Startup application."); } } 

4: Assurez-vous d’avoir la permission de créer des fichiers et des dossiers sur le chemin donné (si le dossier lui-même n’existe pas non plus)

5: Le rest de vos informations est correct

Cela est souvent dû à des permissions manquantes. Le compte Windows sur lequel le pool d’applications IIS local est exécuté peut ne pas être autorisé à écrire dans le répertoire des applications. Vous pouvez créer un répertoire quelque part, autoriser tout le monde à y écrire et pointer votre configuration log4net vers ce répertoire. Si un fichier journal y est créé, vous pouvez modifier les permissions pour le répertoire de journaux souhaité afin que le pool d’applications puisse y écrire.

Une autre raison pourrait être un log4net non initialisé. Dans une application winforms, vous configurez généralement log4net au démarrage de l’application. Dans une application Web, vous pouvez le faire dynamicment (dans votre composant de journalisation, vérifiez si vous pouvez créer un enregistreur Ilog spécifique en utilisant son nom, sinon -> appelez configure ()) ou à nouveau au démarrage de l’application dans global.asax.cs .

J’ai aussi eu le même problème. Les journaux ne créaient pas.

Veuillez vérifier que le nom de l’atsortingbut logger doit correspondre à votre LogManager.GetLogger (“name”)

     private static readonly ILog Log = LogManager.GetLogger("Mylog");