log4net doesn't log

Asked by Joe Schell

Bug system wouldn't continue after first page so I am putting it here.

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
---------------------------------------------------------------

Question information

Language:
English Edit question
Status:
Solved
For:
NUnit V2 Edit question
Assignee:
No assignee Edit question
Solved by:
Charlie Poole
Solved:
Last query:
Last reply:
Revision history for this message
Best Charlie Poole (charlie.poole) said :
#1

Sorry for the delay - question contact seems to have been cleared.

I created a bug based on your report and will follow-up there.

Revision history for this message
Joe Schell (jschell) said :
#2

Since it is now entered as a bug the question can be closed.