Re[10]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 13:39
Оценка: +1 :)
Здравствуйте, Shmj, Вы писали:

S>log4net позиционируется как библиотека для простого настраиваемого логирования.

Шутка дня.
Re[15]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 13:51
Оценка: +1
Здравствуйте, Shmj, Вы писали:

AVK>>Дофига. Но это не делает ее стандартом.

S>"Своего рода" стандартом.

Никакого рода оно не стандарт.

S> Когда все знают и все используют


Нет, не все используют.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[10]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 14:01
Оценка: 2 (1)
Здравствуйте, Sharov, Вы писали:

S>Понятно, есть такая штука -- http://serilog.net/


Ну, это всё равно что лопатка против карьерного эскаватора, не катит от слова вообще.

Не забываем про главную фишку ETW — офигенную пропускную способность.
Одна только рекомендация "если событие бросается с меньшей частотой, чем 100 раз в секунду — не заморачивайтесь" чего стоит
Re[11]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 14:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>
AVK>_log.DebugFormat("Updating '{0}' documents", source.TypeName);
AVK>


DebugFormat — это Debug level, про Notice они как-то забыли.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 15:34
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Тем более что есть common-logging. Точно ещё один нужен?


Чем он лучше log4net?
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 29.03.16 17:19
Оценка:
Здравствуйте, 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? А если там чего-то реально нет, контрибьютить туда?
edit: А, понял, дело исключительно в том, что "Notice" почему-то нет в интерфейсу log — так может лучше его туда законтрибьютить?
Отредактировано 29.03.2016 17:36 nigh . Предыдущая версия . Еще …
Отредактировано 29.03.2016 17:21 nigh . Предыдущая версия .
Re[11]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 17:57
Оценка:
Здравствуйте, nigh, Вы писали:

N>
N>    log.Notice("Notice logging", ...);
N>


N>Может быть стоит просто поближе ознакомиться с lognet?


Блин, ещё один умник. Ты свой код компилировал? Видел там где-нибудь Notice?
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 29.03.16 18:05
Оценка:
Здравствуйте, IT, Вы писали:

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


N>>
N>>    log.Notice("Notice logging", ...);
N>>


N>>Может быть стоит просто поближе ознакомиться с lognet?


IT>Блин, ещё один умник. Ты свой код компилировал? Видел там где-нибудь Notice?


я отредактировал свое оригинальное сообщение — вопрос — зачем писать wrapperы, почему не законтрибьютить код в log4net? Заодно узнаете, почему метода там сейчас нет
Re[13]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 18:17
Оценка: +1
Здравствуйте, nigh, Вы писали:

N>я отредактировал свое оригинальное сообщение — вопрос — зачем писать wrapperы, почему не законтрибьютить код в log4net? Заодно узнаете, почему метода там сейчас нет


Его там нет, потому что таких методов там нужно на десяток тысяч строк вместо с коментариями. Народу видимо лень, а до творческого использования T4 цивилизация ещё видимо не доросла.
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 18:17
Оценка:
Здравствуйте, IT, Вы писали:

IT>DebugFormat — это Debug level, про Notice они как-то забыли.


ILog.Info
ILog.InfoFormat
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[13]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 18:21
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>
AVK>ILog.Info
AVK>ILog.InfoFormat
AVK>


Info — это Info, т.е. тот же Progress и несколько подробнее, чем Notice
Если нам не помогут, то мы тоже никого не пощадим.
Re[14]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 29.03.16 18:38
Оценка:
Здравствуйте, IT, Вы писали:

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


N>>я отредактировал свое оригинальное сообщение — вопрос — зачем писать wrapperы, почему не законтрибьютить код в log4net? Заодно узнаете, почему метода там сейчас нет


IT>Его там нет, потому что таких методов там нужно на десяток тысяч строк вместо с коментариями. Народу видимо лень, а до творческого использования T4 цивилизация ещё видимо не доросла.

по-моему, добавление недостающих методов логгинга тривиально делается через extension methods. Зачем там городить T4 — непонятно.

static public void Notice( this ILog log, object message )
 { 
     log.Logger.Log( null, log4net.Core.Level.Notice, message, null);
 }

повторяю вопрос — что мешает недостающие методы законтрибьютить в log4net? Тем более что Active баг висит
https://issues.apache.org/jira/browse/LOG4NET-281
Re[10]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 18:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Что сверх того -- то от лукавого, как говориться. log4net позиционируется как библиотека для простого настраиваемого логирования.


Для чего угодно, только не для простого.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[10]: Логгинг, или "wtf, log4net"?
От: Lexey Россия  
Дата: 29.03.16 19:53
Оценка: +3
Здравствуйте, IT, Вы писали:

S>>Тем более что есть common-logging. Точно ещё один нужен?


IT>Чем он лучше log4net?


Тем, что это единый интерфейс к разным логерам. На выходе может быть хоть log4net, хоть NLog, хоть черт лысый (только адаптер придется написать).
Я лично log4net выкинул нафиг лет 6 назад из-за его глючности. И никакого желания его пробовать еще раз не имею.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[15]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 21:10
Оценка:
Здравствуйте, nigh, Вы писали:

N>по-моему, добавление недостающих методов логгинга тривиально делается через extension methods. Зачем там городить T4 — непонятно.


Можно. Сколько их нужно? Давим сюда ещё оверлоады с иключениями, форматированием, асинхронностью и т.п. Это десятки методов.

N>повторяю вопрос — что мешает недостающие методы законтрибьютить в log4net?


Щас я всё брошу...
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Логгинг, или "wtf, log4net"?
От: Слава  
Дата: 29.03.16 21:19
Оценка:
Здравствуйте, nigh, Вы писали:

N>шел 2016 год. Решения "из коробки" со словами "Simple" в названии требуют "microsoft tool" или visual studio чтобы просто посмотреть логи (и даже это делается не с первой попытки — см. текст про force carriage returns)


Эта чрезвычайно мощная штука позволяет хоть из драйверов посылать отладочные сообщения. Но вообще, это не для логгирования, а для отладки.
Re[4]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 29.03.16 21:25
Оценка:
Здравствуйте, Слава, Вы писали:

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


N>>шел 2016 год. Решения "из коробки" со словами "Simple" в названии требуют "microsoft tool" или visual studio чтобы просто посмотреть логи (и даже это делается не с первой попытки — см. текст про force carriage returns)


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

Драйверы на сишарпе? Да, конечно

"Чрезвычайно мощная штука" — это ETW. Она к рекомендованому донетовскому поделию имеет мало отношения.
Re[15]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 30.03.16 02:09
Оценка:
Здравствуйте, nigh, Вы писали:

N>повторяю вопрос — что мешает недостающие методы законтрибьютить в log4net? Тем более что Active баг висит

N>https://issues.apache.org/jira/browse/LOG4NET-281

Думаю, что этот баг так и будет там висеть. Посмотрел на код log4net, они все эти оверлоады сделали частью интерфейса ILog. Т.е. надо либо ломать интерфейс, либо делать Extensions. Но судя по дремучести их кода (поддержка только 2008-2012 студий), не исключено, что они всё ещё поддерживают ту версию шарпа, в котором нет расширений. В общем, куда ни плюнь, а делать надо (если надо) внешний расширитель.
Если нам не помогут, то мы тоже никого не пощадим.
Re[16]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 30.03.16 02:18
Оценка:
Здравствуйте, IT, Вы писали:

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


N>>повторяю вопрос — что мешает недостающие методы законтрибьютить в log4net? Тем более что Active баг висит

N>>https://issues.apache.org/jira/browse/LOG4NET-281

IT>Думаю, что этот баг так и будет там висеть. Посмотрел на код log4net, они все эти оверлоады сделали частью интерфейса ILog. Т.е. надо либо ломать интерфейс, либо делать Extensions. Но судя по дремучести их кода (поддержка только 2008-2012 студий), не исключено, что они всё ещё поддерживают ту версию шарпа, в котором нет расширений. В общем, куда ни плюнь, а делать надо (если надо) внешний расширитель.


собственно, в комментариях там написано, что нужно сделать и как сделать для этого поддержку в .NET 2.0 без всяких "внешних расширителей" — просто это еще никто не сделал.


NN added a comment — 28/Oct/15 09:49
Stefan Bodewig You can use extensions methods with .NET 2.0 .
Just declare the attribute.
https://stackoverflow.com/questions/1522605/using-extension-methods-in-net-2-0


Если кто-то придет и сделает, то положительный эффект будет гораздо больше, чем от всего СodeJam (если оценивать по числу зааффекченых программистов)
Re[10]: Логгинг, или "wtf, log4net"?
От: Danchik Украина  
Дата: 30.03.16 10:44
Оценка: +1
Здравствуйте, IT, Вы писали:

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


AVK>>Для веба отдельный пакет надо. А вот для log4net — сильно не уверен.


IT>Это вопрос субъетивный. Ты похоже с log4net дальше чем попыток познакомится не заходил. Я тоже делал несколько подходов к снаряду, пока не разобрался. Зато теперь для меня это вопрос копипасты, ну или отдельного пакета.


Наверняка субьективный. Например у нас ребята больше уважают NLog, вторая команда Serilog — кстати конфигурится на ура Fluent API. Serilog для ELK стека просто песня.
Log.Logger = new LoggerConfiguration()
    .WriteTo.ColoredConsole()
    .WriteTo.RollingFile(@"C:\Log-{Date}.txt")
    .CreateLogger();


Я когда делаю снипеты, закидываю Common.Logging
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.