Вернуться




Логирование Java: терминология, уровни логирования, log-файлы




Логирование Java — это процесс, при котором программа на Java-языке записывает сведения о своем исполнении в некий файл или базу данных. Логирование дает возможность отслеживать ход исполнения программы и конкретно кода.

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

Логирование Java напоминает процесс работы «черного ящика» в самолете — в случае возникновения критических ситуаций оно способно «рассказать», что не так работает и на что обратить внимание.

 

Термин «лог» что это такое?

Логирование — это процесс, который неразрывно связан с термином «лог». Лог с английского можно перевести как «бортовой журнал».

В программировании лог — это специальный файл, который выполняет функцию «бортового журнала» программы. Именно в этот файл, а точнее, в лог программа производит записи о своей работе. Лог-файлы программа может создавать самостоятельно, чтобы вносить туда текстовые пометки.

Лог-файлы помогают «следить» за действиями программы, например, что она функционирует в конкретный момент времени или как она реагирует на действия пользователя.

У одного программного продукта лог-файлы могут быть разные. Например, может быть лог-файл типа:

  • «access_log», в котором фиксируются действия программы при ее взаимодействии с пользователями;
  • «error_log», в котором фиксируются все ошибки, произошедшие в результате работы программы;
  • и др.

В одном лог-файле может быть множество записей, где каждая строчка будет содержать отдельные результаты для каждого взаимодействия с программой. То есть в каждой записи будет информация о том, что происходило с программным продуктом в конкретный момент времени.

Отметим различия между «логированием» и «логом»:

  • логирование — это процесс, при котором программа прописывает какие-то записи в лог-файлы;
  • лог — это сам файл или то место, куда программа производит необходимые записи.

 

Уровни логирования

Мы выяснили, что такое логи и что такое логирование Java. Нетрудно догадаться, что если в лог-файл записывать все действия программы, то там будет большое количество различных сведений. В некоторых ситуациях лог-файлы могут генерироваться очень быстро и в огромных размерах. В этом случае найти нужную информацию в логах будет очень нелегко. Поэтому, чтобы контролировать объемы записываемой информации, придумали различные уровни логирования.

Уровни логирования применяются в программах на различных языках программирования, в том числе и на Java. Различают несколько основных уровней:

  • debug — выводится информация, которая пригодится для отладки программы;
  • info — обычные и стандартные сообщения;
  • warning — нефатальное предупреждение;
  • error — записи ошибок;
  • fatal — фатальная ошибка;
  • off — сообщения не выводятся;
  • trace — информация для точной отладки;
  • all — выводится вся информация.

«Поддержать» уровни логирования в Java можно двумя способами:

  1. Внутри программы можно расставить вызов нужной библиотеки в соответствии с заданным уровнем. Например, если произойдет ошибка, она будет логироваться как «error» и т. д.
  2. В момент запуска программы нужно указать уровень логирования для конкретной ситуации. Если ничего не указывать, то для программы будет применяться уровень «info», где будут записываться все ключевые и важные события, происходящие с программой, в том числе «warning» и «error». Если указать «error», будут записываться только ошибки.

 

Логирование Java: термины

Библиотеки логирования Java включают в себя 3 основных термина:

  1. Logger — это некий объект, который отвечает за запись информации в лог-файлы, опираясь на заданные уровни логирования. Основная задача логгеране пропустить событие, которое нужно записать в лог-файл.
  2. Appender — это конечная точка, куда «приходит» информация для логирования. В качестве appender могут выступать: файл, база данных, консоль, сокет и др. У appender нет каких-либо ограничений, куда записывать сообщения. Все ограничивается только вашими способностями. Если Logger — это начальная точка в логировании, то Appender — это конечная точка. При этом один «логгер» может содержать несколько «аппендеров» и наоборот.
  3. Layout — это формат, в котором выводятся сообщения. Форматирование сообщений напрямую зависит от используемой библиотеки при логировании.

 

Библиотеки логирования Java

Библиотеки логирования Java — это набор инструментов, который применяют при логировании программ. Различают несколько популярных инструментов логирования:

  1. Apache log4j. Это первый набор инструментов для логирования Java, который появился еще в 1999-м году. Внутри себя имеет различные способы вывода логов, несколько форматов логирования и мн. др. Раньше данная библиотека активно применялась, но уже долгое время этот проект не развивается.
  2. JUL. Имеет множество уровней логирования, например, только для отладки у этого инструмента есть в арсенале 3 отладочных уровня вместо одного стандартного.
  3. SLF4J. Этот инструмент является оберткой над многими популярными логгерами, например: logback, log4j, jul и др., поэтому его рекомендуется использовать в паре с полноценной библиотекой для логирования.
  4. Logback был создан как альтернатива умирающему log4j, поэтому он вобрал в себя все лучшее из этого инструмента, при этом усовершенствовал некоторые показатели.

 

Заключение

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



Если вам понравилась эта статья поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересного и полезного контента!




Cхожие статьи





Стоит ли учиться программировать в 2021

Стоит ли учиться программировать в 2021

Не случайно в разговорах о рынке труда, перспективах развития и важнейших с ...

21 Февраля 2021    Другое


Плюсы и минусы Baas для разработки мобильных приложений

Плюсы и минусы Baas для разработки мобильных приложений

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

23 Марта 2021    Другое


Начинающий программист

Начинающий программист

Самыми легкими в изучении можно считать такие языки как JavaScript, Python, ...

23 Марта 2021    Другое




Напишем