Log4Net loggen nicht aus einer Klassenbibliothek

Ich auf Arbeit bin .NET Framework 4.0 mit C# in Windows 7, und versuchen, sich aus ein Bibliothek-Klasse, aber es funktioniert nicht. Ich bin mit meiner Anwendung ohne Fehler, aber auch nichts geschieht, um meine log-Datei, weder auf meine Konsole.

So, hier ist mein code:

Dies ist mein App.config Datei:

<?xml version="1.0"?>
<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>


  <add key="log4net.config" value="config.log4net"/>

  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newlineExtra Info: %property{testProperty}%newline%exception"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG"/>
        <levelMax value="FATAL"/>
      </filter>
    </appender>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="MyLogFile.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="5"/>
      <maximumFileSize value="10MB"/>
      <staticLogFileName value="true"/>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="debug"/>
      </filter>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="error"/>
      </filter>
      <filter type="log4net.Filter.DenyAllFilter"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>
    <logger name="MyApplication">
      <level value="DEBUG"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender-ref ref="RollingFileAppender"/>
    </logger>
  </log4net>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>

</configuration>

Dies ist, was ich in meiner AssemblyInfo.cs:

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

Diese, was auf die Datei, die ich versuche zu Protokoll:

private static readonly ILog log = LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


log.Debug("Testing");

Wenn ich aus meinem Programm passiert nichts. Weiß jemand, warum?

  • Dies funktioniert für mich. Sind Sie platzieren den code für AssemblyInfo.cs in der Bibliothek-Projekt, oder das Projekt?
  • In der Bibliothek-Projekt.
  • Wozu ist diese Zeile gut? <add key="log4net.config" value="config.log4net"/>
Schreibe einen Kommentar