Re: Логгинг, или "wtf, log4net"?
От: Mr.Delphist  
Дата: 28.03.16 14:08
Оценка: 1 (1) +5
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


Попробуйте NLog?
Логгинг, или "wtf, log4net"?
От: SteeLHeaD  
Дата: 28.03.16 13:20
Оценка: +3 :)))
Господа,
сегодня, после примерно трехлетнего перерыва, я попробовал еще раз применить log4net в своем проекте.
Три года назад я попробовал, у меня не получилось, я плюнул, и написал свой логгер, которвй в 50 строчках делал всё, что мне надо.
Я его даже в DLL не оформлял — прорсто копировал эти 50 строк как статический класс из проекта в проект.
Но я ставноивлся взрослее, и все чаще мой класс заставлял меня делать кучу проверок в коде и всяких неудобных операций, чтобы получить результат.
И вот я оопять попробовал овладеть log4net
И понял 2 вещи:
1) я все таки ни хрена не понимаю. Потому что ну очень грормоздко. Философия log4net хорошо передается фразой из введения в него: "Run the program and… see nothing. Don’t worry, that’s expected."

2) Неужели весь java — style софт такое же унылое г?

Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.
я_негодую log4net
Re[11]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 09:25
Оценка: +4 :)
Здравствуйте, Shmj, Вы писали:

S>Но тут проблема в том что log4net является своего рода стандартом. Знать обязан.


Не является.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 22:50
Оценка: +4
Здравствуйте, IT, Вы писали:

IT>С log4net достаточно один раз разабраться и на всю жизнь.


Это да. Что не отменяет плачевного положения с easy start в нем.

IT> Может следует расширить CodeJam проектами типа CodeJam.Log?


Этих логов уже понаплодили ... стоит ли делать еще один?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[6]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 07:11
Оценка: +4
Здравствуйте, IT, Вы писали:

IT>Я про рапер над log4net, который можно будет легко поставить и легко использовать.


Нафиг-нафиг. Log4Net — эт привет из мира явы, с оверинженерингом во все поля, техдолгом срезу по подключении и исключительно текстовым ( ) форматом вывода.
С учётом ETW / sem logging в стиле
MyCompanyEventSource.Log.OrderDiscountProcessingFailed(request.RoleName,
      order.OrderNumber, order.ItemCount, order.TotalValue,
      orderItem.ProductId, orderItem.Discount, context.TableName);

его закапывать надо, а не поддерживать.
Re[8]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 12:38
Оценка: 1 (1) +2
Здравствуйте, Sharov, Вы писали:

S>>и исключительно текстовым ( ) форматом вывода.

S>Если я правильно понял, что имелось в виду под текстовым форматом, то вот --http://stackoverflow.com/questions/1147103/log4net-xml-output

Нет, я имел в виду типизированный лог. От типизированного API для каждого из сообщений и до записи произвольных данных.
С поддержкой Rx и анализа сообщений в прямом эфире, в том числе out of process.

В общем см содержимое вот этого пакета — это если нужен полный хардкор.
Если попроще в использовании — см SLAB. Вот вывод на консоль в произвольном формате:
        #region Пишем в лог
        // Лог
        [EventSource(Name = "MyEventSource")]
        public class MyEventSource : EventSource
        {
            public static readonly MyEventSource Log = new MyEventSource();

            [Event(1, Message = "{1} says: Hello, {0}!")]
            internal void SayHello(string name, string from)
            {
                WriteEvent(1, name, from);
            }
        }


        // Пользовательский код - используем лог
        private static void UserCode()
        {
            // Пишем в лог
            MyEventSource.Log.SayHello(Environment.MachineName, Environment.UserName);
        }
        #endregion

        #region Log capture
        // Формат вывода
        public class RawTextFormatter : IEventTextFormatter
        {
            public void WriteEvent(EventEntry eventEntry, TextWriter writer)
            {
                writer.WriteLine(eventEntry.FormattedMessage);
            }
        }

        static void Main(string[] args)
        {
            // Прикручиваем перехват лога
            using (var listener1 = new ObservableEventListener())
            {
                // Перехватываем лог
                listener1.EnableEvents(MyEventSource.Log, EventLevel.LogAlways);
                listener1.LogToConsole(new RawTextFormatter());

                // Запускаем пользовательский код.
                Task.Run(() => UserCode()).Wait();

                Console.WriteLine("Done");
                Console.ReadKey();
            }
        } 
        #endregion

log4net после этого — позапрошлый век.
Отредактировано 29.03.2016 12:49 Sinix . Предыдущая версия . Еще …
Отредактировано 29.03.2016 12:48 Sinix . Предыдущая версия .
Re[3]: Логгинг, или "wtf, log4net"?
От: QrystaL Украина  
Дата: 28.03.16 18:44
Оценка: +2 :)
Здравствуйте, nigh, Вы писали:
N>шел 2016 год. Решения "из коробки" со словами "Simple" в названии требуют "microsoft tool" или visual studio чтобы просто посмотреть логи (и даже это делается не с первой попытки — см. текст про force carriage returns)
Че-то вы не дочитали, сразу с шашкой наголо кинулись критиковать
Процитированный отрывок это дополнительный функционал (например, в студии в Output всё дублируется).

Буквально следующий же абзац

You can add “trace listeners”. The simple tracing above just uses the Default trace listener. .NET also includes listeners for logging to the Event Log, a text file, an XML file, or the Console.

Отредактировано 28.03.2016 18:44 QrystaL . Предыдущая версия .
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[9]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 00:05
Оценка: 5 (1) +1
Здравствуйте, AndrewVK, Вы писали:

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


Это вопрос субъетивный. Ты похоже с log4net дальше чем попыток познакомится не заходил. Я тоже делал несколько подходов к снаряду, пока не разобрался. Зато теперь для меня это вопрос копипасты, ну или отдельного пакета.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Логгинг, или "wtf, log4net"?
От: QrystaL Украина  
Дата: 28.03.16 18:12
Оценка: 3 (1) :)
Здравствуйте, SteeLHeaD, Вы писали:
SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять.
Есть из коробки http://blog.stephencleary.com/2010/12/simple-and-easy-tracing-in-net.html
Re[10]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 01.04.16 12:04
Оценка: 3 (2)
Здравствуйте, Sharov, Вы писали:

S>Если все без особых хлопот, то log4net на помоечку. И вообще надо etw поизучать.


Для собственно передачи данных в ETW достаточно штатного EventSource.
Semlogging нужен для обработки лога — скидывания в текст/базу/ещё куда. И может быть запущен как отдельный процесс.

S> И вообще надо etw поизучать.

Вот тут засада — документации особой нет, только проекты с примерами для SAB и для Microsoft.Diagnostics.Tracing.TraceEvent. Зато довольно детальные и с кучей комментов
Re[2]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 18:32
Оценка: +1 -1
Здравствуйте, QrystaL, Вы писали:

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

SLH>>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять.
QL>Есть из коробки http://blog.stephencleary.com/2010/12/simple-and-easy-tracing-in-net.html

Observe the Trace Messages
Simple tracing can be observed in one of two ways:

If you run the application in the Visual Studio Debugger, all enabled trace output is written to the Output window.
If you’re running in production (or for some other reason can’t use the debugger), a free Microsoft tool called DebugView may be used to view the traces in real-time (and optionally log them to a file). Tip: uncheck “Options” “Force Carriage Returns” to make the trace output line up correctly.




шел 2016 год. Решения "из коробки" со словами "Simple" в названии требуют "microsoft tool" или visual studio чтобы просто посмотреть логи (и даже это делается не с первой попытки — см. текст про force carriage returns)
Re[9]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 02:49
Оценка: +2
Здравствуйте, nigh, Вы писали:

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


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

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


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

Log.Notice(message, args);


И т.п. Т.е. речь идёт о вменяемом API, которого так не хватает log4net. Плюс вспомогательные вещи по инициализации и настройке. Пару классов для реализации push/pop логгеров, отложенного логирования, асинхронные методы, экстеншены для тех же исключений, чтобы можно было писать exception.Log() и т.п.
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 29.03.16 09:23
Оценка: -1 :)
Здравствуйте, IT, Вы писали:

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


И я времени на разбирательство потратил много, быстрее бы написал свое урезнанное решение, заточенное под мои нужды. Пусть и не такое гибкое.

Но тут проблема в том что log4net является своего рода стандартом. Знать обязан.
Re[9]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 29.03.16 13:21
Оценка: +1 :)
Здравствуйте, Sinix, Вы писали:

S>log4net после этого — позапрошлый век.


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

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

Шутка дня.
Re[8]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 12:35
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

S>Если я правильно понял, что имелось в виду под текстовым форматом, то вот --http://stackoverflow.com/questions/1147103/log4net-xml-output


Нет, неправильно. Речь о том чтобы в прикладном коде передавать разнотипные данные, а не вывод в xml писать.
... << 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: Логгинг, или "wtf, log4net"?
От: Kolesiki  
Дата: 28.03.16 17:09
Оценка: -1
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Три года назад я попробовал, у меня не получилось, я плюнул, и написал свой логгер, которвй в 50 строчках делал всё, что мне надо.


+1 к цепочке велосипедастов. У меня, правда, заняло 535, но это со всеми комментами/отступами, зато логгер имеет уровни логгирования(DEBUG/TRACE/etc), асинх, резервный канал лога, вывод в консоль/файл/винлог/БД и всё это на плагинах. Что там понаписали макаки в log4 — ума не приложу, но точно воды на 95%.

SLH>1) я все таки ни хрена не понимаю. Потому что ну очень грормоздко.


Потому что пишут яйцеголовые кодисты-абстракционисты им почему-то кажется, что их мусором будут пользоваться минимум 100 лет и непременно в самых экстремально-извращённых конфигурациях.

SLH>2) Неужели весь java — style софт такое же унылое г?


Не думаю. Но Жабо — многословный, да — сказывается переупрощённая библиотека и "никакой" язык.
Re: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 17:41
Оценка: +1
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


совершенно не оправдываю log4net, но философия шариковых не работает с логами:

— "запиши лог!" — куда? на консоль? в файл? в OutputDebugString? в windows event log? в базу данных? послать по сети? что делать, если это winforms, где консоли нет? Если в файл, в какой файл писать, как файлы именовать и ротировать?

Ах, вам все это не нужно и вы не хотите в этом разбираться и нужен "самый простой" сценарий — но у всех они разные, а библиотека одна.
Re[5]: Логгинг, или "wtf, log4net"?
От: QrystaL Украина  
Дата: 28.03.16 19:14
Оценка: :)
Здравствуйте, nigh, Вы писали:
N>Например, ни один из стандартных Trace listener, который пишет в файлы, не умеет их ротировать. Совсем.
Вы уж разберитесь — то ли вам надо

скзаать "запиши лог!" — и он запишет лог

то ли продвинутый функционал
Какая постановка вопроса — такой и совет.
Re[2]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 28.03.16 19:48
Оценка: +1
Здравствуйте, nigh, Вы писали:

N>совершенно не оправдываю log4net, но философия шариковых не работает с логами

Да всё оно работает. Практически во всех логгерах основной сценарий: пишем логирование в коде, затем динамически подрубаем листенеры к известным источникам. Листенеров нет — нагрузка нулевая.

Дальше все различия из серии про вкус фломастеров.
Re[7]: Логгинг, или "wtf, log4net"?
От: QrystaL Украина  
Дата: 28.03.16 19:52
Оценка: +1
Здравствуйте, nigh, Вы писали:
N>Чтобы пистаь в файл, надо еще какой-то XML файл редактировать и что-то там указывать. И это ничем от log4net с его конфигурацией Appenderов не отличается.
Чтобы писать в файл, надо как минимум указать путь к нему. Это делается одной строчкой прямо в коде. ХМЛ файл вообще не обязателен.
var traceSource = new TraceSource("File");
traceSource.Listeners.Add(new TextWriterTraceListener("d:/log.txt"));
Re[2]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 20:29
Оценка: +1
Здравствуйте, nigh, Вы писали:

N>Ах, вам все это не нужно и вы не хотите в этом разбираться и нужен "самый простой" сценарий — но у всех они разные, а библиотека одна.


Поэтому в таких случаях библиотека должна позволять легко подключать готовые сценарии и сложно формировать собственные. Вот посмотри на WCF — по сложности и количеству функционала все эти логгеры даже рядом не валялись, а запустить можно всего несколькими строками кода. А в log4net фигвам — нужно минимум атрибут на сборку навесить и влепить кусок кода в конфиг.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[8]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 21:50
Оценка: :)
Здравствуйте, nigh, Вы писали:

AVK>>На старте у всех сценарий один — вывод в консоль и опциональный вывод в файл.

N>у winforms приложений тоже?

Да. Это если вообще возникает потребность в логгинге, что в таких приложениях бывает нечасто.

AVK>>>>XML не обязателен, что характерно.

N>>>в log4net XML тоже не обязателен.
AVK>>Не заметил.
N>ну почитайте документацию. Все конфигурирование можно делать из кода (также как и в WCF кстати)

Читал. А теперь, раз уж ты специалист, приведи минимальный объем кода, чтобы просто выводить лог в консоль и ничего более.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[9]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 22:18
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>На старте у всех сценарий один — вывод в консоль и опциональный вывод в файл.

N>>у winforms приложений тоже?
AVK>Да. Это если вообще возникает потребность в логгинге, что в таких приложениях бывает нечасто.
"Ненужен (с)"? понимаю В winforms (равно как и в ASP.NET приложениях) консоли вообще нет, если что Так что вывод в файл там перестает быть опциональным.

AVK>>>>>XML не обязателен, что характерно.

N>>>>в log4net XML тоже не обязателен.
AVK>>>Не заметил.
N>>ну почитайте документацию. Все конфигурирование можно делать из кода (также как и в WCF кстати)
AVK>Читал. А теперь, раз уж ты специалист, приведи минимальный объем кода, чтобы просто выводить лог в консоль и ничего более.

var lh = (Hierarchy)LogManager.GetRepository();
lh.Root.AddAppender(new ConsoleAppender());
lh.Configured = true;
Отредактировано 28.03.2016 22:19 nigh . Предыдущая версия .
Re[9]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 28.03.16 22:18
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Читал. А теперь, раз уж ты специалист, приведи минимальный объем кода, чтобы просто выводить лог в консоль и ничего более.


// Конфигурация 1 строчка
log4net.Config.BasicConfigurator.Configure(new ConsoleAppender { Layout = new SimpleLayout() });

// Можно использовать
ILog log = LogManager.GetLogger("testLogger");
log.Warn("test");


Оно?
Re[3]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 28.03.16 22:22
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Поэтому в таких случаях библиотека должна позволять легко подключать готовые сценарии и сложно формировать собственные.


С log4net достаточно один раз разабраться и на всю жизнь. Может следует расширить CodeJam проектами типа CodeJam.Log?
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 22:50
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>Оно?


Вот то-то и оно что весьма неочевидный код.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[6]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 23:20
Оценка: :)
Здравствуйте, IT, Вы писали:

IT>Я про рапер над log4net, который можно будет легко поставить и легко использовать.


public static void ConfigureLog4NetTheWayAndrewVKLikes()
{
   log4net.Config.BasicConfigurator.Configure(new ConsoleAppender { Layout = new SimpleLayout() });
}

public static void SimpleLog4NetConfig()
{
   ConfigureLog4NetTheWayAndrewVKLikes();
}
?
Re[12]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 23:22
Оценка: -1
Здравствуйте, nigh, Вы писали:

AVK>>Определить отсутствие консоли у процесса — не рокетсайнс. Создать набор стандартных юзкейсов для для разных типов приложений — тоже.

N>Ну то есть сначала заявляем что дефолтный сценарий — консоль, потом, что в Winforms лог не нужен, а теперь вот дошли наконец до мысли, что дефолтные сценарии у всех разные

Тебе поспорить хочется, что ты постоянно передергиваешь? Да, дефолтный сценарий консоль, потому что логгинг чаще всего требуется в консольном софте. Следующий этап — готовые сценарии. Наконец уровень ниже — полная конфигурация.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[12]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 29.03.16 09:36
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

S>>Но тут проблема в том что log4net является своего рода стандартом. Знать обязан.

AVK>Не является.

А вы откройте поиск по NuGet-пакетам и введите "log". Увидите что log4net находится вверху списка с огромным отрывом от остальных. Почти 4 млн. скачиваний пакета.

4 млн. -- это дофига вообще то для библиотеки.

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

Понимаю что не нравится -- мне тоже не нравится. Но есть вещи объективные. JavaScript тоже никому не нравится, но то что это самый популярный язык мира -- неоспоримо.
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[13]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 29.03.16 18:17
Оценка: +1
Здравствуйте, nigh, Вы писали:

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


Его там нет, потому что таких методов там нужно на десяток тысяч строк вместо с коментариями. Народу видимо лень, а до творческого использования T4 цивилизация ещё видимо не доросла.
Если нам не помогут, то мы тоже никого не пощадим.
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
Re: Логгинг, или "wtf, log4net"?
От: _ichensky Европа https://github.com/ichensky
Дата: 28.03.16 13:43
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


просто читаешь ман. нет мана? — исходники. делаешь для себя конфиг. пользуешься.
вообще перед тем как что-то исспользовать надо хорошенько изучить, надо ли оно вообще тебе, какие есть альтернативы, какие могут возникнуть проблемы в будущем.
юзать либу в проекте, не изучив ее — смешно. это все-равно что купить айфон, потому что увидел как ванильнильная фифа в метро делала с айфона селфи, а потом страдать, потому что айфон ничего толком и не умеет, а в апл обратно его уже не вернуть(из проекта либу не выпилить/дописать, — можно, но костылями).
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
Re: Логгинг, или "wtf, log4net"?
От: Sharov Россия  
Дата: 28.03.16 13:46
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


Какие 4 страницы? Берете простейший базовый конфиг, пишите две строчки для инициализации и все готово. Нормальный обычной логгер.
Кодом людям нужно помогать!
Re[2]: Логгинг, или "wtf, log4net"?
От: Lexey Россия  
Дата: 28.03.16 17:32
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

SLH>>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


MD>Попробуйте NLog?


Я бы даже сказал, попробуйте Common.Logging. А какой конкретный логер с ним юзать — второй вопрос. Хотя, я тоже за NLog.
"Будь достоин победы" (c) 8th Wizard's rule.
Отредактировано 28.03.2016 17:33 Lexey . Предыдущая версия .
Re: Логгинг, или "wtf, log4net"?
От: Слава  
Дата: 28.03.16 18:07
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.


Пользуйтесь NLog. У меня от log4net впечатления странные, когда один и тот же конфиг ведет себя по-разному в разных проектах — это ненормально. Гибкость у него потрясающая, конечно, но NLog тоже умеет очень многое.
Re[4]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 19:08
Оценка:
Здравствуйте, QrystaL, Вы писали:

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

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

QL>Буквально следующий же абзац

QL>

QL>You can add “trace listeners”. The simple tracing above just uses the Default trace listener. .NET also includes listeners for logging to the Event Log, a text file, an XML file, or the Console.


я дочитал. Процитированный отрывок — это раздел "Observe the Trace Messages", а ваше — это "More power!"
Я даже это убожество (.NET Trace listeners) на практике использовал. Рекомендовать такое можно только в двух случаях: вы никогда сами этим не пользовались или вы рекомендуете кому-то кого сильно не любите.

Например, ни один из стандартных Trace listener, который пишет в файлы, не умеет их ротировать. Совсем. Указываете одно имя файла и надеетесь на лучшее
Приходится импортировтаь классы из Microsoft.VisualBasic.Logging

https://stackoverflow.com/questions/867833/log-files-rotation-with-net-listeners

чтобы писать логи используя Event log trace listener нужны админские права и тд и т п.
Re[6]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 19:27
Оценка:
Здравствуйте, QrystaL, Вы писали:

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

N>>Например, ни один из стандартных Trace listener, который пишет в файлы, не умеет их ротировать. Совсем.
QL>Вы уж разберитесь — то ли вам надо
QL>

QL>скзаать "запиши лог!" — и он запишет лог

QL>то ли продвинутый функционал
так прикол в том, что "запиши лог!" в случае с .NET trace listener его пишет не в файл, а в Debug Output, где его посмотреть можно только в студии или через DebugView.
Чтобы пистаь в файл, надо еще какой-то XML файл редактировать и что-то там указывать. И это ничем от log4net с его конфигурацией Appenderов не отличается.
Re[3]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 20:45
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


N>>Ах, вам все это не нужно и вы не хотите в этом разбираться и нужен "самый простой" сценарий — но у всех они разные, а библиотека одна.


AVK>Поэтому в таких случаях библиотека должна позволять легко подключать готовые сценарии и сложно формировать собственные.

log4net вроде прекрасно с этим справляется, только для ТС это слишком сложно.

>Вот посмотри на WCF — по сложности и количеству функционала все эти логгеры даже рядом не валялись, а запустить можно всего несколькими строками кода.

Ага, и еще парой мегабайт XMLя (шучу, шучу)
по-моему, что WCF, что log4net одинаковы по количеству overengineering для простых сценариев.

>А в log4net фигвам — нужно минимум атрибут на сборку навесить и влепить кусок кода в конфиг.

аттрибует на сборку вешать наобязательно — нужен или аттрибут или вызов log4net.Config.XmlConfigurator.Configure()
это ничем от "нескольких строчек" в WCF не отличается
Re[8]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 20:46
Оценка:
Здравствуйте, QrystaL, Вы писали:

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

N>>Чтобы пистаь в файл, надо еще какой-то XML файл редактировать и что-то там указывать. И это ничем от log4net с его конфигурацией Appenderов не отличается.
QL>Чтобы писать в файл, надо как минимум указать путь к нему. Это делается одной строчкой прямо в коде. ХМЛ файл вообще не обязателен.
QL>
QL>var traceSource = new TraceSource("File");
QL>traceSource.Listeners.Add(new TextWriterTraceListener("d:/log.txt"));
QL>

так а я о чем? в случае с log4net это абсолютно то же самое.
Re[4]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 20:51
Оценка:
Здравствуйте, nigh, Вы писали:

N>log4net вроде прекрасно с этим справляется, только для ТС это слишком сложно.


Плохо он справляется, нельзя дефолтный сценарий подключить одной строчкой кода.

>>Вот посмотри на WCF — по сложности и количеству функционала все эти логгеры даже рядом не валялись, а запустить можно всего несколькими строками кода.

N>Ага, и еще парой мегабайт XMLя (шучу, шучу)

XML не обязателен, что характерно.

N>по-моему, что WCF, что log4net одинаковы по количеству overengineering для простых сценариев.


Это по твоему. А на практике, к примеру, можно так:
public static WebChannelFactory<IRsdnIndexService> CreateFactory()
{
    return new WebChannelFactory<IRsdnIndexService>(
        new WebHttpBinding(),
        new Uri(ConfigManager.GetString("IndexServerUri")));
}
...
using (var factory = IndexServiceHelper.CreateFactory())
using (var svc = factory.CreateChannel())
    svc.Search(...);

И никаких конфигов.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[5]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 20:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


N>>log4net вроде прекрасно с этим справляется, только для ТС это слишком сложно.


AVK>Плохо он справляется, нельзя дефолтный сценарий подключить одной строчкой кода.

что такое "дефолтный сценарий"? Я уже сказал — они у всех разные. Одна строчка там или три чтобы подключить логгирование в файл роли не играет.

>>>Вот посмотри на WCF — по сложности и количеству функционала все эти логгеры даже рядом не валялись, а запустить можно всего несколькими строками кода.

N>>Ага, и еще парой мегабайт XMLя (шучу, шучу)

AVK>XML не обязателен, что характерно.

в log4net XML тоже не обязателен.

N>>по-моему, что WCF, что log4net одинаковы по количеству overengineering для простых сценариев.


AVK>Это по твоему. А на практике, к примеру, можно так:

AVK>
AVK>public static WebChannelFactory<IRsdnIndexService> CreateFactory()
AVK>{
AVK>    return new WebChannelFactory<IRsdnIndexService>(
AVK>        new WebHttpBinding(),
AVK>        new Uri(ConfigManager.GetString("IndexServerUri")));
AVK>}
AVK>...
AVK>using (var factory = IndexServiceHelper.CreateFactory())
AVK>using (var svc = factory.CreateChannel())
AVK>    svc.Search(...);
AVK>

AVK>И никаких конфигов.
я смотрю "одна строчка кода" у вас как-то распухла.
Re[6]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 21:13
Оценка:
Здравствуйте, nigh, Вы писали:

AVK>>Плохо он справляется, нельзя дефолтный сценарий подключить одной строчкой кода.

N>что такое "дефолтный сценарий"? Я уже сказал — они у всех разные.

На старте у всех сценарий один — вывод в консоль и опциональный вывод в файл.

AVK>>XML не обязателен, что характерно.

N>в log4net XML тоже не обязателен.

Не заметил.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 21:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Плохо он справляется, нельзя дефолтный сценарий подключить одной строчкой кода.

N>>что такое "дефолтный сценарий"? Я уже сказал — они у всех разные.

AVK>На старте у всех сценарий один — вывод в консоль и опциональный вывод в файл.

у winforms приложений тоже?

AVK>>>XML не обязателен, что характерно.

N>>в log4net XML тоже не обязателен.
AVK>Не заметил.
ну почитайте документацию. Все конфигурирование можно делать из кода (также как и в WCF кстати)
Re[10]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 22:50
Оценка:
Здравствуйте, nigh, Вы писали:

AVK>>Да. Это если вообще возникает потребность в логгинге, что в таких приложениях бывает нечасто.

N>"Ненужен (с)"? понимаю В winforms (равно как и в ASP.NET приложениях) консоли вообще нет, если что

Определить отсутствие консоли у процесса — не рокетсайнс. Создать набор стандартных юзкейсов для для разных типов приложений — тоже.

AVK>>Читал. А теперь, раз уж ты специалист, приведи минимальный объем кода, чтобы просто выводить лог в консоль и ничего более.


N>
N>var lh = (Hierarchy)LogManager.GetRepository();
N>lh.Root.AddAppender(new ConsoleAppender());
N>lh.Configured = true;
N>


А что мешало сделать просто:
LogManager.Configure(new ConsoleAppConfig());

?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[11]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 23:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Да. Это если вообще возникает потребность в логгинге, что в таких приложениях бывает нечасто.

N>>"Ненужен (с)"? понимаю В winforms (равно как и в ASP.NET приложениях) консоли вообще нет, если что
AVK>Определить отсутствие консоли у процесса — не рокетсайнс. Создать набор стандартных юзкейсов для для разных типов приложений — тоже.
Ну то есть сначала заявляем что дефолтный сценарий — консоль, потом, что в Winforms лог не нужен, а теперь вот дошли наконец до мысли, что дефолтные сценарии у всех разные (о чем вам в самом начале сказали). Еще немного — и осознаете, что "создать набор стандартных юзкейзов для разных типов приложений" эквивалентно наличию примеров использования и one-linerов вроде тех, что вам уже привели.

Врубаешься? Вот оно, просветление-то.
Что, усекли, ну то-то — вижу по глазам

(c)

AVK>А что мешало сделать просто:

Это вам в соседнюю ветку к Shmj. Обсуждать неочевидность BasicConfiguratorа и отсутствие в log4net кнопки "сделать чтобы сразу работало искаропки и понравилось AndrewVK".
Re[5]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 28.03.16 23:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

IT>> Может следует расширить CodeJam проектами типа CodeJam.Log?

AVK>Этих логов уже понаплодили ... стоит ли делать еще один?

Я про рапер над log4net, который можно будет легко поставить и легко использовать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 23:22
Оценка:
Здравствуйте, IT, Вы писали:

IT>Я про рапер над log4net, который можно будет легко поставить и легко использовать.


Это зависимость. А делать отдельный пакет из-за одного раппера ...
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 28.03.16 23:24
Оценка:
Здравствуйте, AndrewVK, Вы писали:

IT>>Я про рапер над log4net, который можно будет легко поставить и легко использовать.

AVK>Это зависимость. А делать отдельный пакет из-за одного раппера ...

Я про отдельный пакет. Если идея пойдёт в массы, то захочется раперов для ASP.NET, WPF и т.п.
Если нам не помогут, то мы тоже никого не пощадим.
Re[13]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 28.03.16 23:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Определить отсутствие консоли у процесса — не рокетсайнс. Создать набор стандартных юзкейсов для для разных типов приложений — тоже.

N>>Ну то есть сначала заявляем что дефолтный сценарий — консоль, потом, что в Winforms лог не нужен, а теперь вот дошли наконец до мысли, что дефолтные сценарии у всех разные

AVK>Тебе поспорить хочется, что ты постоянно передергиваешь? Да, дефолтный сценарий консоль, потому что логгинг чаще всего требуется в консольном софте.

На основании чего сделано это громкое заявление? На основании вашего личного опыта использования логгинга, ограниченного разработкой консольного софта?
Re[7]: Логгинг, или "wtf, log4net"?
От: IT Россия linq2db.com
Дата: 28.03.16 23:36
Оценка:
Здравствуйте, nigh, Вы писали:

N>?


Нет, конечно. Речь о полноценном решении со всеми плюшками, удобным API и шаблонами конфига. Можно даже датабазу через linq2db прикрутить.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 23:42
Оценка:
Здравствуйте, IT, Вы писали:

IT>Я про отдельный пакет. Если идея пойдёт в массы, то захочется раперов для ASP.NET, WPF и т.п.


Для веба отдельный пакет надо. А вот для log4net — сильно не уверен.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[14]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.03.16 23:43
Оценка:
Здравствуйте, nigh, Вы писали:

AVK>>Тебе поспорить хочется, что ты постоянно передергиваешь? Да, дефолтный сценарий консоль, потому что логгинг чаще всего требуется в консольном софте.

N>На основании чего сделано это громкое заявление? На основании вашего личного опыта использования логгинга, ограниченного разработкой консольного софта?

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

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


N>>?


IT>Нет, конечно. Речь о полноценном решении со всеми плюшками, удобным API и шаблонами конфига. Можно даже датабазу через linq2db прикрутить.

Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?
Re[4]: Логгинг, или "wtf, log4net"?
От: xy012111  
Дата: 29.03.16 05:54
Оценка:
Здравствуйте, QrystaL, Вы писали:

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

QL>Че-то вы не дочитали, сразу с шашкой наголо кинулись критиковать
QL>Процитированный отрывок это дополнительный функционал (например, в студии в Output всё дублируется).

QL>Буквально следующий же абзац

QL>You can add “trace listeners”. The simple tracing above just uses the Default trace listener. .NET also includes listeners for logging to the Event Log, a text file, an XML file, or the Console.


А вы моете не абзац процитировать, а набросать минимальный код, который выведет TraceInformation("Fff") в текстовый файл? И не рядом с приложением, куда, как правило, нельзя писать кому попало (в Program Files же оно), а в папку приложения под профилем пользователя?
Re[13]: Логгинг, или "wtf, log4net"?
От: xy012111  
Дата: 29.03.16 06:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>>>Определить отсутствие консоли у процесса — не рокетсайнс. Создать набор стандартных юзкейсов для для разных типов приложений — тоже.

N>>Ну то есть сначала заявляем что дефолтный сценарий — консоль, потом, что в Winforms лог не нужен, а теперь вот дошли наконец до мысли, что дефолтные сценарии у всех разные

AVK>Тебе поспорить хочется, что ты постоянно передергиваешь? Да, дефолтный сценарий консоль, потому что логгинг чаще всего требуется в консольном софте. Следующий этап — готовые сценарии. Наконец уровень ниже — полная конфигурация.


Кажется, поспорить — это вам. Ваш оппонент говорит о том, что даже ваши предложения не подходят под требования топикстартера:

Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог.


Не о том, что они не подходящи или сложны вообще, а о том, что не удовлетворяют требованиям топикстартера У вас же помимо как "сделать логгер" надо его ещё и настроить соответствующим образом, а уж если надо настроивать, то одним каким-то вызовом это делать или в конфиге что прикрутить уже не так важно. Если мы всё ещё решаем проблему топикстартера, как ваш оппонент, а не обсуждаем размахиваем шашкой за что-то ещё другое.
Re[7]: Логгинг, или "wtf, log4net"?
От: Venom  
Дата: 29.03.16 08:54
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Нафиг-нафиг. Log4Net — эт привет из мира явы, с оверинженерингом во все поля, техдолгом срезу по подключении и исключительно текстовым ( ) форматом вывода.


Но это была не реклама логфонета, а предложение полезняшки для облегчения работы логфонетом, раз уж уже и так пришлось.
Философия кодджема как раз в том и состоит чтобы облегчать жизнь программисту, зачем зарубать хорошие намерения в самом начале?
Re[10]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 09:23
Оценка:
Здравствуйте, IT, Вы писали:

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


Ну открой в репозитории отдельные сервисы для сайта . Log.Notice(message, args) там, кстати, есть. Вот тебе копипаста:
_log.DebugFormat("Updating '{0}' documents", source.TypeName);
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[8]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 09:30
Оценка:
Здравствуйте, Venom, Вы писали:

V>Философия кодджема как раз в том и состоит чтобы облегчать жизнь программисту, зачем зарубать хорошие намерения в самом начале?


Ну вот по-моему лучший способ облегчить — не использовать log4net вообще.
Тем более что есть common-logging. Точно ещё один нужен?
Re[13]: Логгинг, или "wtf, log4net"?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.03.16 10:40
Оценка:
Здравствуйте, Shmj, Вы писали:

S>А вы откройте поиск по NuGet-пакетам и введите "log". Увидите что log4net находится вверху списка с огромным отрывом от остальных. Почти 4 млн. скачиваний пакета.


Ввел, не увидел.

S>4 млн. -- это дофига вообще то для библиотеки.


Дофига. Но это не делает ее стандартом.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: Логгинг, или "wtf, log4net"?
От: Sharov Россия  
Дата: 29.03.16 11:17
Оценка:
Здравствуйте, Sinix, Вы писали:


S>и исключительно текстовым ( ) форматом вывода.


Если я правильно понял, что имелось в виду под текстовым форматом, то вот --http://stackoverflow.com/questions/1147103/log4net-xml-output
Кодом людям нужно помогать!
Re[11]: Логгинг, или "wtf, log4net"?
От: Sharov Россия  
Дата: 29.03.16 11:19
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Но тут проблема в том что log4net является своего рода стандартом. Знать обязан.


Это ни в одном глазу не стандарт, а нормальная (с точки зрения ява программистов "конфиг туда, конфиг сюда") библиотека логгирования. Пользуюсь уже много лет и особых нареканий не вызывает. Альтернативы есть, и не мало.
Кодом людям нужно помогать!
Re[9]: Логгинг, или "wtf, log4net"?
От: Sharov Россия  
Дата: 29.03.16 12:48
Оценка:
Здравствуйте, Sinix, Вы писали:

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


S>>>и исключительно текстовым ( ) форматом вывода.

S>>Если я правильно понял, что имелось в виду под текстовым форматом, то вот --http://stackoverflow.com/questions/1147103/log4net-xml-output

S>Нет, я имел в виду типизированный лог. От типизированного API для каждого из сообщений и до записи произвольных данных.


Понятно, есть такая штука -- http://serilog.net/
Я, правда, не использовал пока и не планирую.
Кодом людям нужно помогать!
Re[14]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 29.03.16 13:20
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


"Своего рода" стандартом. Когда все знают и все используют (под все имею в виду большинство, т.к. это самая популярная библиотека для логирования) -- то в некотором роде это уже негласный стандарт.
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[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[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[9]: Логгинг, или "wtf, log4net"?
От: Sharov Россия  
Дата: 01.04.16 11:41
Оценка:
Здравствуйте, Sinix, Вы писали:

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


S>>>и исключительно текстовым ( ) форматом вывода.

S>>Если я правильно понял, что имелось в виду под текстовым форматом, то вот --http://stackoverflow.com/questions/1147103/log4net-xml-output

Начал читать про semantic logging block, как то мимо меня прошло. Пока все выглядит оченно круто. Посмотрим как будет на практике, надо побольше почитать и поиграться. Если все без особых хлопот, то log4net на помоечку. И вообще надо etw поизучать.
Кодом людям нужно помогать!
Re: Логгинг, или "wtf, log4net"?
От: itslave СССР  
Дата: 06.04.16 19:01
Оценка:
Здравствуйте, SteeLHeaD, Вы писали:

SLH>Почему нельзя сделать логгер, которому можно просто скзаать "запиши лог!" — и он запишет лог. И этим можно пользоваться до тех пор, пока не возникнет желания что нить поменять. А вот уже тогда лезть в настройки. А не так, что сначала нужно 4 страницы конфигов, в которых ты не понимаешь, зачем они нужны.

Патаму шо, как только вылазишь из песочницы, так сразу начинают появляться вопросы: а куда записать лог? А насколько подробный лог нужен? А что делать если записать не получается? А что делать если внезапно перфоманс начинает проседать из-за логирования? А как правильно написать ексепшн? А иннер екеспшн? И тд и тп. Собственно говоря в 4 страничном конфиге на эти все вопросы и отвечаешь, сообразно нуждам твоего приложения. Хорошие новости от кэпа: для старта почти всегда достаточно дефолтных значений с минимальными изменениями, а потом постепенно докручиваешь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.