, это было исправлено в версии 3.0.2 Ninject.Extensions.Logging, поэтому обновление этой библиотеки решит проблему.
я проблема с использованием Log4Net (1.2.10) через Ninject's (2.2.1.4) Extensions.Logging.Log4net (2.2.0.4), установленную через NuGet.
Когда я получаю доступ к Log4Net напрямую:
var logger = log4net.LogManager.GetLogger("Log4NetLoggerTest");
logger.Debug("foo { bar");
Результат:
2011-08-29 10:02:02,071 [9] DEBUG Log4NetLoggerTest foo { bar
Однако, когда к логгеру обращаются через Ninject:
using (IKernel kernel = new StandardKernel())
{
var ninjectLogger = kernel.Get<NinjectLoggerTest>();
ninjectLogger.Log.Debug("foo { bar");
}
Где NinjectLoggerTest просто так:
using Ninject.Extensions.Logging;
namespace TestApp
{
public class NinjectLoggerTest
{
public NinjectLoggerTest(ILogger log)
{
Log = log;
}
public ILogger Log;
}
}
Несколько неожиданно, результат:
2011-08-29 10:29:27,114 [10] DEBUG TestApp.NinjectLoggerTest <log4net.Error>Exception during StringFormat: Input string was not in a correct format. <format>foo { bar</format><args>{}</args></log4net.Error>
Еще хуже то, что при использовании метода Trace в ILogger возникает первое исключение типа «System.FormatException» в mscorlib.dll.
Я делаю что-то неправильно? Как я могу это исправить?
ТИА