Могу ли я получить log4net для добавления реального имя класса, а не имя сгенерированного класса закрытия?

У меня есть класс, который ведет журнал анонимным методом. Я упустил его, чтобы подчеркнуть суть ...

public class SocketFlusher
{
    private static readonly ILog Log = LogManager.GetLogger(typeof(SocketFlusher));

    public void Flush()
    {
        Wait.For(timeout, () => 
        {
            ... // work
            Log.DebugFormat("{0} bytes available", socket.Available);
        }
    }
}

Моя конфигурация log4net) хорошо (я проверил вывод log4net debug = "true" , а приложение работает ). Макет моего приложения -

  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%-4thread] %-5level %class{1} - %message%newline"/>
  </layout>

Но мой вывод журнала имеет это сумасшедшее авто -сгенерированный в нем статический класс.

2011-03-21 18:10:20,053 [5   ] DEBUG SocketFlusher+<>c__DisplayClass1 - 82 bytes available

Я хочу, чтобы он сказал SocketFlusher , каков правильный макет приложения для получения этого формата?

7
задан Anthony Mastrean 18 April 2011 в 16:56
поделиться