Comments 20
Я на скрин посмотрел несколько секунд и уже глаза заболели. Там цвета сменить можно?
+6
Как-то оно не в стиле с++… Вместо одного log-stream синглетона куча функций с труднозапоминаемыми названиями…
+4
А в HTML писать умеет?
Вообще, конечно, многопоточность unicode и вывод в несколько получателей логов для библиотеки логгирования звучит как «поддерживается сложение, умножение и вычисление определителя матриц» для математической библиотеки.
Вообще, конечно, многопоточность unicode и вывод в несколько получателей логов для библиотеки логгирования звучит как «поддерживается сложение, умножение и вычисление определителя матриц» для математической библиотеки.
0
по-умолчанию не умеет, может использовать в качестве back-end-а например apache log4cxx.
Вообще насчет требования «базовых вещей» — всё очень даже непросто. Тот же log4cxx, когда я его смотре, тёк… я уж молчу про его зависимости. Boost Logging v2 тянет за собой добрую часть буста, что далеко не всегда оправдано, и с поддержкой wchar_t у нее есть сложности… В своё время смотрел гугловский логгер, у него вроде и по сей день нет поддержки wchar_t…
Предложите аналоги — рассмотрим и их…
Вообще насчет требования «базовых вещей» — всё очень даже непросто. Тот же log4cxx, когда я его смотре, тёк… я уж молчу про его зависимости. Boost Logging v2 тянет за собой добрую часть буста, что далеко не всегда оправдано, и с поддержкой wchar_t у нее есть сложности… В своё время смотрел гугловский логгер, у него вроде и по сей день нет поддержки wchar_t…
Предложите аналоги — рассмотрим и их…
0
Прежде чем рассматривать аналоги, нужно определиться с требованиями к библиотекам логирования. Для одного из своих высоконагруженных проектов я выбирал между:
* Pantheios
* ACE
* google-glog
* Boost.Log by Andrey Semashev
* Boost.Logging by John Torjo
* log4cplus
* log4cpp
* log4cxx
Вдаваться в специфику проекта не буду. Скажу лишь, что выбор пал на lo4cplus в силу его размеров, отсутствия внешних зависимостей и использования критический секций для Windows.
Pantheios не стали использовать из-за отсутствия поддержки rolling files (на тот момент ее еще не было) и зависимости от STLSoft STL.
И, если автор возьмется за сравнительный анализ логгеров, отдельно хотелось бы выделить google-glog. Его CHECK-макросы — это нечто.
* Pantheios
* ACE
* google-glog
* Boost.Log by Andrey Semashev
* Boost.Logging by John Torjo
* log4cplus
* log4cpp
* log4cxx
Вдаваться в специфику проекта не буду. Скажу лишь, что выбор пал на lo4cplus в силу его размеров, отсутствия внешних зависимостей и использования критический секций для Windows.
Pantheios не стали использовать из-за отсутствия поддержки rolling files (на тот момент ее еще не было) и зависимости от STLSoft STL.
И, если автор возьмется за сравнительный анализ логгеров, отдельно хотелось бы выделить google-glog. Его CHECK-макросы — это нечто.
+3
Моё личное мнение что ротация логов это административная функция. Например в банках есть поставленая процедура закрытия дня и логи архивируются по её завершении (и это время не полночь). В иных системах бизнес правила могут быть другие. В любом случае ротацию можно самому сделать, это не сложно.
На самом деле библиотека не задумывалась изначально как логгер, это была API для логирования, которая передаст информацию в нижележащий «настоящий логгер». А уж потом на неё накрутили «примеров»…
На самом деле библиотека не задумывалась изначально как логгер, это была API для логирования, которая передаст информацию в нижележащий «настоящий логгер». А уж потом на неё накрутили «примеров»…
0
Вот смотрю на куски апи, что тут представлены, там ужас в том же стиле, что картинка с готовым логом на скриншоте. Ну неужели нельзя было просто передрать класс QDebug на голых плюсах?
+1
В каких ситуациях это может потребоваться?
-2
#include <pantheios/implicit_link/ber.WindowsConsole.h>
этот код в проекте означает что для кросс-платформенного куска кода потребуются ифдефы — неудобно.
вы не описали собственно вкусностей библиотеки — а именно — можно ли одновременно выводить лог в разные места, есть ли асинхронные/синхронные логгеры, что насчет формата вывода ( ну там кастомные дату-время указать)
а вот скорость работы логгера лично меня волнует мало. Просто если логов много — имхо нужно использовать логгер асинхронный ( это сразу же поднимет его скорость до максимума ) — в то же время если лог-файл уже огромный — то как ни увеличивай скорость работы — запись в файл будет узким горлышком, поэтому любой синхронный логгер будет тормозить.
0
Насчет WindowsСonsole — это просто для цветной консоли в винде, так можно юзать fprintf — он на консоль будет печатать, но без цвета. И это кросплатформено.
Можно ли выводить в разные места? А я вывожу в два: в файл и консоль. Можно и в разные в общем.
Асинхронный логер — это спорная штука. Одно дело когда логгер используется как трассировщик (например биржевые данные в логах должны быть — требования бизнеса банка), другое дело, когда он используется как логгер. Я сильно не уверен что вы захотите асинхронный логгер, в который уйдет крешдамп или подобная предсмертная информация.
Можно ли выводить в разные места? А я вывожу в два: в файл и консоль. Можно и в разные в общем.
Асинхронный логер — это спорная штука. Одно дело когда логгер используется как трассировщик (например биржевые данные в логах должны быть — требования бизнеса банка), другое дело, когда он используется как логгер. Я сильно не уверен что вы захотите асинхронный логгер, в который уйдет крешдамп или подобная предсмертная информация.
0
вопрос — предусматривает ли этот логгер полную свою остановку по команде, во всех потоках etc?
Ибо у меня log4cxx не выгружается, несмотря на насильный тычок через LogManager. Убил бы скотину, он мне итоговое падение приложения своими библиотеками замусоривает (:
Ибо у меня log4cxx не выгружается, несмотря на насильный тычок через LogManager. Убил бы скотину, он мне итоговое падение приложения своими библиотеками замусоривает (:
0
Столько приседаний в самом начале. Поэтому и пишут свои логгеры, чтобы
Хотя подсветка это плюс конечно.
#include "mylogger.h"
MyLog log;
//...
log << "my variable = " << variable << std::endl;
Хотя подсветка это плюс конечно.
0
1. Множество макросов — это плохо
2. Какова стоимость отключенного логера? Сколько стоит пройти через строчку логирования, если лорнет отключен совсем, или если нет необходимости выводить этот уровень ошибки? Ленивое вычисление аргумента логера есть?
3. Как происходит сериалация объекта?
4. Сколько стоит использование этой библиотеку в коде?
Мы остановили свой выбор на mlog. Есть конечно недостатки, но их мало.
2. Какова стоимость отключенного логера? Сколько стоит пройти через строчку логирования, если лорнет отключен совсем, или если нет необходимости выводить этот уровень ошибки? Ленивое вычисление аргумента логера есть?
3. Как происходит сериалация объекта?
4. Сколько стоит использование этой библиотеку в коде?
Мы остановили свой выбор на mlog. Есть конечно недостатки, но их мало.
0
Only those users with full accounts are able to leave comments. Log in, please.
Знакомство с библиотекой логирования Pantheios