Сообщение Re[10]: Логгинг, или "wtf, log4net"? от 29.03.2016 17:19
Изменено 29.03.2016 17:36 nigh
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, nigh, Вы писали:
N>>Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?
IT>Не абстракцию, а рапер. Зачем? Для удобства использования. Например, вместо:
IT>
Господи, ужас какой. Кто ж вас заставляет так делать?
гораздо удобнее пользоваться оригинальным API:
Если вас смущает "private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);" — то оно добавляется либо одно на класс, либо одно на все приложение (если вам не хочется иметь возможность включать/выключать лог от каждого класса индивидуально и/или видеть правильное имя класса в логах бесплатно)
IT> Т.е. речь идёт о вменяемом API, которого так не хватает log4net.
Может быть стоит просто поближе ознакомиться с lognet? А если там чего-то реально нет, контрибьютить туда?
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? А если там чего-то реально нет, контрибьютить туда?
Re[10]: Логгинг, или "wtf, log4net"?
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, nigh, Вы писали:
N>>Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?
IT>Не абстракцию, а рапер. Зачем? Для удобства использования. Например, вместо:
IT>
Господи, ужас какой. Кто ж вас заставляет так делать?
гораздо удобнее пользоваться оригинальным API:
Если вас смущает "private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);" — то оно добавляется либо одно на класс, либо одно на все приложение (если вам не хочется иметь возможность включать/выключать лог от каждого класса индивидуально и/или видеть правильное имя класса в логах бесплатно)
IT> Т.е. речь идёт о вменяемом API, которого так не хватает log4net.
Может быть стоит просто поближе ознакомиться с lognet? А если там чего-то реально нет, контрибьютить туда?
edit: А, понял, дело исключительно в том, что "Notice" почему-то нет в интерфейсу log — так может лучше его туда законтрибьютить?
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? А если там чего-то реально нет, контрибьютить туда?
edit: А, понял, дело исключительно в том, что "Notice" почему-то нет в интерфейсу log — так может лучше его туда законтрибьютить?