Информация об изменениях

Сообщение Re[10]: Логгинг, или "wtf, log4net"? от 29.03.2016 17:19

Изменено 29.03.2016 17:21 nigh

Здравствуйте, IT, Вы писали:

IT>Здравствуйте, nigh, Вы писали:


N>>Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?


IT>Не абстракцию, а рапер. Зачем? Для удобства использования. Например, вместо:


IT>
IT>Logger.Logger.Log(typeof(Logger), log4net.Core.Level.Notice, string.Format(massage, args), null);
IT>


Господи, ужас какой. Кто ж вас заставляет так делать?

гораздо удобнее пользоваться оригинальным API:


public class MyClass
{

private static readonly log4net.ILog log = log4net.LogManager.GetLogger
    (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

...
public void MyMethod1()
{
    log.Info("Info logging", ...);
}

...
public void MyMethod2()
{
    log.Notice("Notice logging", ...);
}

}


Если вас смущает "private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);" — то оно добавляется либо одно на класс, либо одно на все приложение (если вам не хочется иметь возможность включать/выключать лог от каждого класса индивидуально и/или видеть правильное имя класса в логах бесплатно)

IT> Т.е. речь идёт о вменяемом API, которого так не хватает log4net.


Может быть стоит просто поближе ознакомиться с lognet? А если так чего-то реально нет, контрибьютить туда?
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, nigh, Вы писали:


N>>Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?


IT>Не абстракцию, а рапер. Зачем? Для удобства использования. Например, вместо:


IT>
IT>Logger.Logger.Log(typeof(Logger), log4net.Core.Level.Notice, string.Format(massage, args), null);
IT>


Господи, ужас какой. Кто ж вас заставляет так делать?

гораздо удобнее пользоваться оригинальным API:


public class MyClass
{

private static readonly log4net.ILog log = log4net.LogManager.GetLogger
    (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

...
public void MyMethod1()
{
    log.Info("Info logging", ...);
}

...
public void MyMethod2()
{
    log.Notice("Notice logging", ...);
}

}


Если вас смущает "private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);" — то оно добавляется либо одно на класс, либо одно на все приложение (если вам не хочется иметь возможность включать/выключать лог от каждого класса индивидуально и/или видеть правильное имя класса в логах бесплатно)

IT> Т.е. речь идёт о вменяемом API, которого так не хватает log4net.


Может быть стоит просто поближе ознакомиться с lognet? А если там чего-то реально нет, контрибьютить туда?