2016-07-01 10 views
0

So habe ich mehrere Projekte in einer Lösung. Ich weiß, dass Sie im SAME-Projekt eine Protokollhilfsklasse erstellen können. Allerdings habe ich mich gefragt, ob ich das auf alle Projekte erweitern kannLog4net Klassenbibliothek gibt kein Protokoll aus

Ich habe eine Klassenbibliothek erstellt, so dass jedes meiner Projekte eine log4net Logger-Basis für ihren Projektnamen erhalten kann.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.CompilerServices; 
using System.Text; 
using System.Threading.Tasks; 

namespace Log4NetLogHelper 
{ 
    public class LogHelper 
    { 
     public static log4net.ILog GetLogger([CallerFilePath]string filename = "") 
     { 
      return log4net.LogManager.GetLogger(filename); 
     } 
    } 
} 

Ich überprüfte den Dateinamen in der Hilfsklasse und es war korrekt. Es gibt jedoch keine Protokollausgabe. (Nichts ist in der Datei und etc.) Ich bin 99.99% sicher, dass es nicht meine Konfiguration ist, weil das log4net gut funktioniert, wenn ich die Hilfsklasse nicht verwende.

using Log4NetLogHelper; 

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

namespace A 
{ 
    public class B 
    { 
     private static readonly log4net.ILog log = LogHelper.GetLogger(); 
     static void Main(string[] args) 
     { 
      log.Error("test"); 
     } 
    } 
} 

Antwort

0

Ich denke, ich habe es. Ich denke, das Problem war, dass ich vergessen habe, die [assembly: log4net.Config.XmlConfigurator(Watch =true)] in meinem Bibliotheksprojekt

zu setzen
Verwandte Themen