Что такое логгер в Java и почему вы его используете?



Эта статья о Logger в Java представляет собой исчерпывающее руководство по API ведения журналов Java, используемому для решений для ведения журналов при создании проектов.

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

В этой статье будут рассмотрены следующие темы:





    1. Необходимость регистрации
    2. Компоненты ведения журнала
    3. Что такое регистратор?
    4. Appender или обработчики
    5. Макет или форматеры

Раньше мы углубились в логирование в java, чтобы понять необходимость логирования.

Необходимость регистрации

При создании приложений мы часто сталкиваемся с ошибками, которые необходимо отлаживать. Итак, с помощью логов мы легко можем получить информацию о том, что происходит в приложении с записью ошибок и необычных обстоятельств. Теперь вы можете подумать, почему бы не использовать оператор System.out.print () в . Проблема с этими операторами в том, что сообщения журнала будут печататься только на консоли. Итак, как только вы закроете консоль, автоматически все журналы будут потеряны. Следовательно, журналы не будут храниться постоянно, а будут отображаться один за другим, поскольку это однопоточная среда.



Чтобы избежать таких проблем, вход в Java упрощен с помощьюAPI, предоставляемый черезjava.util.loggingпакет, иorg.apache.log4j. *пакет.

Компоненты ведения журнала

Компоненты ведения журналов Java помогают разработчику создавать журналы, передавать журналы в соответствующее место назначения и поддерживать правильный формат. Ниже приведены три компонента:

  • Лесорубы - Отвечает за сбор записей журнала и передачу их в соответствующее приложение.
  • Добавители или обработчики - Они несут ответственность за запись событий журнала в пункт назначения. Приложения форматируют события с помощью макетов перед отправкой выходных данных.
  • Макеты или форматеры - Отвечает за определение того, как выглядят данные, когда они появляются в записи журнала.

Вы можете обратиться к изображению ниже, чтобы узнать о работе всех трех компонентов:



Компоненты ведения журнала - Регистратор на Java - Edureka

Когда приложение выполняет вызов журнала, компонент Logger записывает событие в LogRecord и пересылает его в соответствующий Appender. Затем он сформировал запись с использованием макета в соответствии с требуемым форматом. Помимо этого, вы также можете использовать более одного фильтра, чтобы указать, какие приложения следует использовать для событий.

Теперь давайте разберемся, что такое регистратор в Java.

Что такое регистратор в Java?

Регистраторы в Java - это объекты, которые запускают события журнала. Они создаются и вызываются в коде приложения, где они генерируют события журнала перед их передачей следующему компоненту, который является Appender. Вы можете использовать несколько регистраторов в одном классе для реагирования на различные события или использовать регистраторы в иерархии. Обычно они именуются с использованием иерархического пространства имен, разделенных точками. Кроме того, все имена Logger должны основываться на классе или имени пакета регистрируемого компонента.

Помимо этого, каждый регистратор отслеживает ближайшего существующего предка в Журналы пространство имен, а также имеет связанный с ним «Уровень». Что ж, я буду обсуждать регистраторы в последней части этой статьи, но перед этим позвольте мне показать вам, как создать регистратор на Java.

Создать новый регистратор

Процесс создания нового Регистратора на Java довольно прост. Вы должны использоватьLogger.getLogger ()метод. ВgetLogger () идентифицирует имя Регистратора и принимает строку в качестве параметра. Итак, если регистратор уже существует, этот регистратор возвращается, в противном случае создается новый регистратор.

Синтаксис:

static Logger logger = Logger.getLogger (SampleClass.class.getName ())

Здесь SampleClass - это имя класса, для которого мы получаем объект Logger.

Пример:

public class Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Теперь, когда я рассказал вам, как создать регистратор на Java, давайте посмотрим на различные уровни, доступные при ведении журнала.

Уровни журнала

Уровни журналов используются для классификации журналов по их серьезности или влиянию на стабильность приложения. Вorg.apache.log4j. *пакет иjava.util.loggingоба обеспечивают разные уровни ведения журнала. Давайте рассмотрим каждую из них по очереди.

org.apache.log4j. *пакет предоставляет следующие уровни в порядке убывания:

  • ФАТАЛЬНЫЙ
  • ОШИБКА
  • ПРЕДУПРЕЖДЕНИЕ
  • ИНФОРМАЦИЯ
  • ОТЛАЖИВАТЬ

java.util.loggingпакет предоставляет следующие уровни в порядке убывания:

  • ТЯЖЕЛЫЙ (ВЫСШИЙ УРОВЕНЬ)
  • ПРЕДУПРЕЖДЕНИЕ
  • ИНФОРМАЦИЯ
  • КОНФИГУРАЦИЯ
  • Штраф
  • FINER
  • НАИЛУЧШИЙ (САМЫЙ НИЗКИЙ УРОВЕНЬ)

Помимо этого, вышеупомянутый пакет также предоставляет два дополнительных уровняВСЕиВЫКЛ.используется для регистрации всех сообщений и отключения регистрации соответственно.

Пример входа в Java с использованиемorg.apache.log4j. *пакет:

import org.apache.log4j.Logger открытый класс Customer {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Final Output')}}

Итак, если ваш результаткорневой регистратор как WARN-уровень в нашем log4j.properties файл, то все сообщения об ошибках с более высоким приоритетом, чем WARN, будут напечатаны, как показано ниже:

Вы также можете установить уровень, используя метод setLevel () изjava.util.loggingпакет, как показано ниже:

logger.setLevel (Level.WARNING)

Пример входа в Java с использованиемjava.util.loggingпакет:

пакет edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) public void sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} открытый класс Customer {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Hi! Welcome from Edureka')}}

Чтобы разрешить вход в ваше приложение с помощьюorg.apache.log4j. *пакет илиjava.util.loggingпакет, вам необходимо настроить файл свойств. Далее в этой статье о Logger в Java давайте обсудим файл свойств обоих из них.

Файл свойств Log4j и пакета Java Util

Пример файла свойств Log4j:

# Включить опцию корневого журнала log4j.rootLogger = INFO, file, stdout # Присоединить приложения к файлу печати log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 МБ log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Присоединить приложения для печати на консоли log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Файл свойств Log4j создается в папке src проекта.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Распечатывает все журналы в файле
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Распечатывает все журналы в консоли
  • log4j.appender.file.File = D: loglogging.log -> Задает расположение файла журнала.
  • log4j.appender.file.MaxFileSize = 10 МБ -> Максимальный размер файла журнала до 10 МБ
  • log4j.appender.file.MaxBackupIndex = 5 -> Ограничивает количество файлов резервных копий до 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Задает шаблон, по которому журналы будут печататься в файле журнала.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Устанавливает шаблон преобразования по умолчанию.

Образец Файл свойств пакета Java Util

handlers = java.util.logging.ConsoleHandler .level = WARNING # Вывод будет сохранен в каталоге по умолчанию java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Уровень журналов будет ограничен значением WARNING и выше. java.util.logging.ConsoleHandler.level = ПРЕДУПРЕЖДЕНИЕ java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Вот,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Файлы журнала будут записаны вC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Максимальный объем, который регистратор записывает в любой файл в байтах.
  • java.util.logging.FileHandler.count = 1 -> Задает количество выходных файлов
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Упоминает средство форматирования, используемое для форматирования. Здесь используется XML Formatter.
  • java.util.logging.ConsoleHandler.level = WARNING -> Устанавливает уровень журнала по умолчанию на WARNING
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->ОпределяетФорматировщикдля использования всемиConsoleHandler‘S. Здесь используется SimpleFormatter.

Регистрация событий

Для регистрации событий в , вы должны убедиться, что вы назначили уровень, чтобы легко отсортировать события. Чтобы назначить уровень и упомянуть сообщение, вы можете использовать следующие методы:

Способ 1:

logger.log (Level.INFO, «Показать сообщение»)
Здесь уровень - ИНФОРМАЦИЯ, а печатаемое сообщение - «Отображаемое сообщение».

Способ 2:

logger.info («Показать сообщение»)

Чтобы убедиться, что Logger в Java регистрирует только события, которые находятся на уровне INFO или выше, вы можете использовать setLevel () описанный выше метод.

Теперь, когда я обсудил, как использовать Logger в Java, давайте обсудим следующий компонент архитектуры Log4j, то есть приложения.

Appender или обработчики

Appender или обработчики несут ответственность за запись событий журнала в место назначения. Каждый регистратор имеет доступ к нескольким обработчикам и получает сообщение журнала от регистратора. Затем аппендеры используют средства форматирования или макеты для форматирования событий и отправки их в соответствующее место назначения.

программа умножения матриц на java

Appender можно отключить с помощью метода setLevel (Level.OFF). Два самых стандартных обработчика вjava.util.loggingпакет следующие:

  • FileHandler: Записать сообщение журнала в файл
  • ConsoleHandler: Записывает сообщение журнала в консоль

Для вашего лучшего понимания я объяснил несколько приложений в разделе свойств.

Макет или форматеры

Компоновка средств форматирования используется для форматирования и преобразования данных в событии журнала.Платформы ведения журналов предоставляют макеты для журналов HTML, XML, Syslog, JSON, обычного текста и других журналов.

  1. SimpleFormatter : Создает текстовые сообщения с основной информацией.
  2. XMLFormatter : Генерирует XML-сообщение для журнала

Для вашего лучшего понимания я объяснил несколько макетов в разделе свойств.На этом мы подошли к концу этого блога «Logger в Java». Я надеюсь, что вы, ребята, ясно понимаете, чему вас научили в этой статье.

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях к этому блогу «Регистратор на Java», и мы свяжемся с вами как можно скорее.