nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #02418
[Bug 605034] Re: Log4net not working with NUnit
On the question of when this problem was introduced, the code that
causes a default repository to be created by log4net was introduced in
NUnit 2.4.7. It's a reflection call to the Configure method on our own
appender.
Two approaches might eliminate the need for the workaround:
1. Find a way to force the initialization early (programmatically that
is).
2. Find a way to be notified when the log4net initialization has taken
place.
A completely different approach would be to require the user to specify the nunit appender
in the log4net configuration in order to see the output in the gui. This does less for the
user, but isn't much different from what you're doing anyway in order to use log4net.
--
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
https://bugs.launchpad.net/bugs/605034
Title:
Log4net not working with NUnit
Status in NUnit V2 Test Framework:
Triaged
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/nunitv2/+bug/605034/+subscriptions
References