Ich habe zwei Projekte identisch für log4net konfiguriert. Ein Projekt wird protokolliert. das andere protokolliert jedoch überhaupt nicht.log4net liest nicht aus app.config
Die Logger
in dem Projekt, das nicht IsFatalEnabled = false
kehrt Protokollierung ist, IsErrorEnabled = false
, IsWarnEnabled = false
, IsInforEnabled = false
und IsDebugEnabled = false
.
Ich habe von einem Projekt zum anderen kopiert und eingefügt, die Datei vollständig ersetzt und versucht, alle Leerzeichen zu entfernen.
Was könnte dazu führen, dass das eine Projekt nicht korrekt die richtigen Ebenen aus der app.config liest?
app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="logfile.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date: %-5level – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
</configuration>
Program.cs
using log4net;
class Program
{
private static readonly ILog Log = LogManager.GetLogger("SO");
static void Main(string[] args)
{
Log.Info("SO starting");
}
}
meinem Fall war ungefähr das gleiche - ich ein Projekt in ein anderes Projekt kopiert, aber log4net in benutzerdefinierten Assembly mit meinem Utility-Code „verpackt“ - obwohl die magische Linie, die Sie im neuen Projekt war erwähnen, es fehlte aus AssemblyInfo.cs meiner benutzerdefinierten Assembly (ich hatte den Eindruck, dass die gesamte Konfiguration in der Assembly ausgeführt werden musste, die den Einstiegspunkt enthielt - falsch) –
Ich musste dies für eine VB.NET-Anwendung tun ... Syntax: –