![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Trivial logging with filtersBoost , Chapter 1. Boost.Log v2 , Tutorial
|
![]() | Important |
---|---|
Помните, что потоковое выражение выполняется только в том случае, если запись прошла фильтрацию. Не указывайте критически важные для бизнеса вызовы в потоковом выражении, так как эти вызовы могут не вызываться, если запись отфильтрована. |
Несколько слов нужно сказать о выражении установки фильтра. Поскольку мы создаем глобальный фильтр, мы должны приобрести ядродля регистрации. Вот что делает<logging::core::get()
>— возвращает указатель на ядро синглтона. Метод<set_filter
>лесозаготовительного ядра задает глобальную функцию фильтрации.
Фильтр в этом примере построен какBoost. Феникслямбда-выражение. В нашем случае это выражение состоит из единственного логического предиката, левый аргумент которого является заполнителем, описывающим проверяемый атрибут, а правый аргумент — величиной, против которой нужно проверить. Ключевое слово<severity
>является заполнителем, предоставляемым библиотекой. Этот заполнитель определяет значение атрибута строгости в выражениях шаблона; ожидается, что это значение будет иметь имя «Severity» и тип<severity_level
>. Этот атрибут автоматически предоставляется библиотекой в случае тривиальной регистрации; пользователю нужно только указать его значение в заявлениях о регистрации. Заполнитель вместе с оператором заказа создает функциональный объект, который будет вызван ядром регистрации для фильтрации записей журнала. В результате только лог-записи с уровнем тяжести не ниже<info
>пройдут фильтр и попадут на консоль.
Можно создавать более сложные фильтры, комбинируя такие логические предикаты друг с другом или даже определять свою собственную функцию (включая функцию лямбды C++11), которая будет действовать как фильтр. Вернемся к фильтрации в следующих разделах.
Статья Trivial logging with filters раздела Chapter 1. Boost.Log v2 Tutorial может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |