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

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


Это вопрос субъетивный. Ты похоже с log4net дальше чем попыток познакомится не заходил. Я тоже делал несколько подходов к снаряду, пока не разобрался. Зато теперь для меня это вопрос копипасты, ну или отдельного пакета.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Логгинг, или "wtf, log4net"?
От: nigh  
Дата: 29.03.16 02:08
Оценка:
Здравствуйте, IT, Вы писали:

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


N>>?


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

Т.е. сделать еще один уровень абстракции над абстракциями log4net? Если да, то зачем?
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[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[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[7]: Логгинг, или "wtf, log4net"?
От: Venom  
Дата: 29.03.16 08:54
Оценка:
Здравствуйте, Sinix, Вы писали:

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


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

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


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

Но тут проблема в том что 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[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[8]: Логгинг, или "wtf, log4net"?
От: Sinix  
Дата: 29.03.16 09:30
Оценка:
Здравствуйте, Venom, Вы писали:

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


Ну вот по-моему лучший способ облегчить — не использовать log4net вообще.
Тем более что есть common-logging. Точно ещё один нужен?
Re[12]: Логгинг, или "wtf, log4net"?
От: Shmj Ниоткуда  
Дата: 29.03.16 09:36
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

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

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

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

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

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

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

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


Что сверх того -- то от лукавого, как говориться. log4net позиционируется как библиотека для простого настраиваемого логирования.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.