Другое

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

Lorem ipsum dolor

Логирование 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 нужно разбирать постепенно. А проблема есть, так как присутствует огромное количество разнообразного инструмента логирования, при этом нет четких стандартов самого логирования.

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

Как изменить код программы без исходника? Несколько способов
Другое

Как изменить код программы без исходника? Несколько способов

Мобильные приложения – конкурентное преимущество в борьбе за покупателя
Другое

Мобильные приложения – конкурентное преимущество в борьбе за покупателя

Как распознать шрифт по картинке: способы и программы
Другое

Как распознать шрифт по картинке: способы и программы

Компьютерное зрение: определение, алгоритмы и технологии
Другое

Компьютерное зрение: определение, алгоритмы и технологии

×