Ich habe eine Baugruppe, in der ich log4net verwende. Ich lade diese Assembly in Windows Forms-Anwendungen und Konsolenanwendungen. Es funktioniert wie erwartet in Windows Forms-Apps sowohl in Release- als auch in Debug-Builds und Konsolen-Apps in Debug-Builds, scheitert aber auf mysteriöse Weise an Release-Builds von Konsolen-Apps.Log4Net funktioniert nicht, aber nur für Release-Konsolen-Builds
Ich habe folgendes in meiner Datei AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch = true)]
In Klassen, die Protokollierung verwenden I umfassen die folgenden Membervariable Erklärung:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Und meine Library.dll.log4net Konfiguration Datei sieht wie folgt aus:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Library.log" />
<appendToFile value="true" />
<rollingStyle value="Once" />
<maxSizeRollBackups value="5" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
ich die Vorschläge inversucht haben,(Log4Net doesn’t write log in release mode - Console Application) aber sie scheinen nicht zu helfen.
Ich habe auch versucht, programmgesteuert internen Debugging so schnell wie möglich in der Assembly (im Konstruktor des ersten Objekts referenziert), aber das hat auch keine Auswirkungen.
Irgendwelche anderen Ideen? Kann jemand sehen, was ich falsch mache?
Macht es einen Unterschied machen, wenn Sie Ihre AssemblyInfo.cs ändern, um die der vollständige Name, und nicht nur die Erweiterung, zB 'log4net.Config.XmlConfigurator (ConfigFile =" Library.dll.log4net ", Watch = true)]'? – sgmoore
Leider macht es keinen Unterschied. –