Подтвердить что ты не робот

Почему в log4Net нет уровня следа?

Мне просто интересно, почему в log4Net нет уровня трассировки. Этот уровень кажется отсутствующим, и я иногда чувствую необходимость его использовать, например, для вывода того, какие события выполняются в приложении. Эта функция является частью log4J.

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

Знаете ли вы о библиотеке расширений log4net, которая реализует это, или почему она не была частью порта для .net?

4b9b3361

Ответ 1

Вы можете добавить Verbose (или уровень Trace) в log4net, используя методы расширения. Это то, что я использую:

public static class ILogExtentions
{       
    public static void Trace(this ILog log, string message, Exception exception)
    {
        log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
            log4net.Core.Level.Trace, message, exception);
    }

    public static void Trace(this ILog log, string message)
    {
        log.Trace(message, null);
    }

    public static void Verbose(this ILog log, string message, Exception exception)
    {
        log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
            log4net.Core.Level.Verbose, message, exception);
    }

    public static void Verbose(this ILog log, string message)
    {
        log.Verbose(message, null);
    }

}

Пример использования:

public class ClientDAO
{
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(ClientDAO));

    public void GetClientByCode()
    {
        log.Trace("your verbose message here");
        //....
    }
}

Источник:

http://www.matthewlowrance.com/post/2010/07/14/Logging-to-Trace-Verbose-etc-with-log4net.aspx

Ответ 3

Интерфейс log4net.ILog предоставляет методы и свойства только для уровней Fatal, Error, Warn, Info и Debug.

Я согласен, что это немного ограничивает, и хотел бы видеть еще один уровень там. Но тогда оптимальное количество уровней, вероятно, "на один больше, чем текущее количество уровней" - вы всегда будете иногда хотеть еще один уровень.