, это было исправлено в версии 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.

Я делаю что-то неправильно? Как я могу это исправить?

ТИА

Ответы на вопрос(2)

Ваш ответ на вопрос