--HG--
branch : dev
This commit is contained in:
Andre Rodrigues
2010-12-06 17:07:35 -08:00
parent 9617f3a666
commit 7d54cd8c2c
3 changed files with 29 additions and 15 deletions

View File

@@ -105,7 +105,6 @@ namespace Orchard.Specs.Bindings {
else
logger.Fatal(loggingEvent.RenderedMessage);
}
}
[Serializable]

View File

@@ -1,11 +1,15 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Autofac;
using log4net.Appender;
using log4net.Core;
using NUnit.Framework;
using Orchard.Environment;
using Orchard.Logging;
using Orchard.Tests.Environment;
using ILogger = Orchard.Logging.ILogger;
using ILoggerFactory = Orchard.Logging.ILoggerFactory;
using NullLogger = Orchard.Logging.NullLogger;
namespace Orchard.Tests.Logging {
[TestFixture]
@@ -51,18 +55,21 @@ namespace Orchard.Tests.Logging {
builder.RegisterType<Thing>();
builder.RegisterType<StubHostEnvironment>().As<IHostEnvironment>();
var container = builder.Build();
log4net.Config.BasicConfigurator.Configure(new MemoryAppender());
var thing = container.Resolve<Thing>();
Assert.That(thing.Logger, Is.Not.Null);
InMemoryCapture.Messages.Clear();
MemoryAppender.Messages.Clear();
thing.Logger.Error("-boom{0}-", 42);
Assert.That(InMemoryCapture.Messages, Has.Some.StringContaining("-boom42-"));
Assert.That(MemoryAppender.Messages, Has.Some.StringContaining("-boom42-"));
InMemoryCapture.Messages.Clear();
MemoryAppender.Messages.Clear();
thing.Logger.Warning(new ApplicationException("problem"), "crash");
Assert.That(InMemoryCapture.Messages, Has.Some.StringContaining("problem"));
Assert.That(InMemoryCapture.Messages, Has.Some.StringContaining("crash"));
Assert.That(InMemoryCapture.Messages, Has.Some.StringContaining("ApplicationException"));
Assert.That(MemoryAppender.Messages, Has.Some.StringContaining("problem"));
Assert.That(MemoryAppender.Messages, Has.Some.StringContaining("crash"));
Assert.That(MemoryAppender.Messages, Has.Some.StringContaining("ApplicationException"));
}
}
@@ -70,19 +77,23 @@ namespace Orchard.Tests.Logging {
public ILogger Logger { get; set; }
}
public class InMemoryCapture : TraceListener {
static InMemoryCapture() {
public class MemoryAppender : IAppender {
static MemoryAppender() {
Messages = new List<string>();
}
public static List<string> Messages { get; set; }
public override void Write(string message) {
lock (Messages) Messages.Add(message);
public void DoAppend(LoggingEvent loggingEvent) {
if (loggingEvent.ExceptionObject != null) {
lock (Messages) Messages.Add(string.Format("{0} {1} {2}",
loggingEvent.ExceptionObject.GetType().Name,
loggingEvent.ExceptionObject.Message,
loggingEvent.RenderedMessage));
} else lock (Messages) Messages.Add(loggingEvent.RenderedMessage);
}
public override void WriteLine(string message) {
lock (Messages) Messages.Add(message + System.Environment.NewLine);
}
public void Close() { }
public string Name { get; set; }
}
}

View File

@@ -90,6 +90,10 @@
<Reference Include="IronRuby.Libraries">
<HintPath>..\..\lib\dlr\IronRuby.Libraries.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\fluentnhibernate\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Dynamic, Version=1.1.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>