Библиотеки логирования: понятие, суть, функции
Для настройки логирования разработчики в своем большинстве пользуются готовыми программными решениями. Такие решения универсальны. С их помощью можно работать с любыми кодами и сохранять любой формат записи.
Прежде, чем переходить к библиотекам, рассмотрим основные инструменты логирования языка Java - Logger, Appender, Layout.
Logger - это инструмент, отвечающий за запись информации о работе системы в лог-файл. Logger предоставляет различные уровни логирования, которые можно использовать для классификации сообщений – например, TRACE, DEBUG, INFO, WARN и ERROR. Каждый из них имеет свою степень приоритетности и позволяет настраивать запись логов в зависимости от уровня важности сообщения. Правильно и четко сформированные журналы логов значительно упрощают расследование разных инцидентов, происходящих в процессе функционирования интернет-ресурсов.
Appender второй по значимости инструмент. Используется не менее часто, чем Логгер. Он отвечает за то, куда и каким образом будут выводиться записи и где они будут храниться. Appender определяет тип выходных данных, форматирование сообщений и фильтрацию записей. Благодаря Appender можно настроить Logger таким образом, чтобы сохранялись только самые важные сообщения в конкретном месте и в заданном формате.
Существует большое количество типов Appender. Все они отличаются целями использования. Например, в языке Java существует FileAppender, который пишет сообщения в отдельный файл, ConsoleAppender, который выводит логи на консоль, а также SocketAppender, который направляет логи на отдельный удаленный сервер.
Кроме того, с помощью нескольких Appender можно настроить один Logger таким образом, чтобы журналы логов сохранялись в нескольких местах одновременно.
Layout еще один важный инструмент логирования. Он отвечает за то, каким образом информация будет записываться в лог-файл. Этот инструмент задает формат выведения сообщения: какие поля будут включены в файл, как они будут форматироваться, в каком порядке будут выводиться и т.д.
Разные типы Layout могут быть использованы для различных целей. Например, SimpleLayout просто выводит текст сообщения, а PatternLayout позволяет настраивать формат записи сообщений с помощью строки формата.
Инструментарий логгинга основан на готовых решениях - библиотеках. Рассмотрим их подробнее.
Обзор бибилиотек логгеров log4j, JUL, SLF4J, Logback
Библиотеки логгеров предоставляют собой набор функций и методов для создания логов. Наиболее популярными библиотеками являются:
- log4j. Быстро, надежно ведет журналы. Написана на Java и распространяется по лицензии apache. log4j портировали на разные языки: С, С++, python и т.д. Благодаря внешним файлам легко настраивается. Журнал ведется исходя из уровня приоритета. Он может предложить разные механизмы, которые направляют информацию регистрации на разные точки (файлы, консоли, системные журналы и т.д.).
- JUL. Самый главный плюс данного решения, это то, что он включен в JDK. В качестве основы здесь взят log4j. Благодаря решению IBM ‒ JUL активно развивается. Из недостатков можно выделить то, что JUL немного ухудшает понимание уровней, т.к. они отличаются от Logback и Log4j.
- SLF4J.Так называемая обертка над оберткой, которая работает на log4j, JUL, common-loggins. Инструмент делится на две части: API для приложения и реализация под каждый из видов логирования. Поддерживаются функции форматирования.
- Logback. Инструмент написан тем же разработчиком log4j. Это его преемник. Здесь хорошая производительность, есть нативная поддержка, фильтрация. Logback не требует настроек для того, чтобы начать записывать.
Что такое библиотека логирования. Обзор Log4Net, SeriLog, NLog
Библиотека логирования – более объемное понятие. Оно включает в себя программные решения, обеспечивающие функциональность не только процесса фиксации, но и управления логами.
Библиотеки позволяют формировать различные уровни логирования, фильтрацию и сортировку сообщений, поддержку различных форматов записи (текстовые файлы, базы данных, консоль и т.д.), а также другие функции, которые могут быть полезны для анализа работы приложения или системы, а также ее отладки.
Есть несколько достаточно популярных инструментов.
Log4Net реализовывает поименное логирование и выполняет массу других функций. Можно создать свою копию логгера, используя класс или ключ. Чтобы установить требуется создание конфигурационного файла. В сам файл разрешено добавлять фильтрацию. В конфигурацию для этого добавляются отдельные блоки.
SeriLog не может настраиваться с помощью изменения конфигурации файлов. Присутствует статическое свойство, в котором умещается объект. Во время записи возможно добавление операторов, которые при необходимости выведут все значения объектов.
NLog создает объекты логов с помощью кодов, файлов. Формат, который позволяет выводить сообщение можно установить, добавив в target элемент layout. Есть операторы, форматирующие строки, а также асинхронная обертка.
Это далеко не полный перечень популярных библиотек. В целом, все возможности библиотек схожи. При выборе нужной библиотеки логирования важно понимание, какие задачи Вы преследуете, настраивая логирование для своего ресурса.