← Back to team overview

nunit-core team mailing list archive

[Bug 605034] Re: Log4net not working with NUnit

 

A partial fix is in for NUnit 2.6. We'll think about further
improvements for 3.0.

For 2.6, the log capture no longer takes place when using the console
runner. Since the console runner doesn't do anything with the captured
output, it was really never needed anyway. Now we only capture log
output if the package contains a setting indicating that it should be
captured. Only the Gui creates that setting. For good measure, I did the
same with trace output.

-- 
You received this bug notification because you are a member of NUnit
Core Developers, which is the registrant for NUnit Framework.
https://bugs.launchpad.net/bugs/605034

Title:
  Log4net not working with NUnit

Status in NUnit Test Framework:
  Triaged
Status in NUnit V2 Test Framework:
  Fix Committed

Bug description:
  Problem: Using log4net with newer versions of nunit means that no
  log file is created.

  Demonstration follows.

  I created the solution in VS 2008.
  The OS is Windows XP.
  I tested using both the nunit GUI and console.
  I compared Nunit 2.2.5 with 2.5.5 (I suspect 2.5.0 will fail as well.)
  The solution is created as a console app.

  When the app is run as a console application a Log file is produced.
  When the app is run using 2.2.5 a Log file is produced.
  When the app is run using 2.5.5 no Log file is produced.

  There are two files in the solution: Log.config and Program.cs

  Following comes from a file name "Log.config"

  ----------------------------------------------
  <?xml version="1.0" encoding="utf-8" ?>
  <log4net debug="false">       

    <appender name="DefaultLogFile" type="log4net.Appender.RollingFileAppender">
        <file value=".\Log" />
        <appendToFile value="false" />
        <staticLogFileName value="false" />           
        <rollingStyle value="Date" />
        <datePattern value="'.'yyyyMMdd'.log'" />
        <layout type="log4net.Layout.PatternLayout">
        
          <conversionPattern value="%utcdate{ABSOLUTE} %-5level %message%newline" />
          
        </layout>
    </appender>

    <root>
      <level value="All" />
      <appender-ref ref="DefaultLogFile" />
    </root>
  </log4net>
  -----------------------------------------------------

  Following is Program.cs

  -----------------------------------------------------
  using System;
  using System.Reflection;
  using NUnit.Framework;

  [assembly: log4net.Config.XmlConfiguratorAttribute(ConfigFile =
  "Log.config", Watch = true)]

  namespace TestNunitLog4net
  {
  [TestFixture]
  public class Program
  {
    private static readonly log4net.ILog log 
          = log4net.LogManager.GetLogger(
              MethodBase.GetCurrentMethod().DeclaringType);
              
    // Test scenarios
    //   Test 1: Works - log show up (gui and console)
    //        log4net: 1.2.10.0
    //        Nunit: 2.2.5.0

    //   Test 2: Fails - no log file (gui and console)
    //        log4net: 1.2.10.0
    //        Nunit: 2.5.5.10112
    
    // Following has no impact.
    // It exists just so we can see it in log.
    private readonly String exeType;
    
    static void Main()
    {
      Program p = new Program("Exe");
      p.TestLog();
    }
    
    private Program(String stype)
    {
      this.exeType = stype;
    }
    
    public Program()
    {
      this.exeType = "Nunit";
    }

  
    [Test]
    public void TestLog()
    {
      log.Debug(exeType + ": First line");
      log.Debug(exeType + ": Second line");
    }

  } // End of class
  } // End of namespace
  ---------------------------------------------------------------

To manage notifications about this bug go to:
https://bugs.launchpad.net/nunit-3.0/+bug/605034/+subscriptions


References