Какво е логер в Java и защо го използвате?



Тази статия за Logger в Java е изчерпателно ръководство за Java API за регистриране, използван за регистриране на решения при създаване на проекти.

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

В тази статия ще бъдат разгледани следните теми:





    1. Необходимост от регистрация
    2. Вписване на компоненти
    3. Какво е Logger?
    4. Appender или манипулатори
    5. Оформление или форматиране

Преди да се потопим дълбоко в регистрацията в java, нека разберем необходимостта от регистриране.

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

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



За да се избегнат подобни проблеми, влизането в Java се опростява с помощта наAPI, предоставен чрезjava.util.loggingпакет иorg.apache.log4j. *пакет.

Вписване на компоненти

Компонентите за регистриране на Java помагат на разработчика да създава регистрационни файлове, да ги предава на съответната дестинация и да поддържа подходящ формат. Следват трите компонента:

  • Дървачи - Отговаря за заснемането на регистрационни записи и предаването им на съответния заявител.
  • Апендери или манипулатори - Те са отговорни за записването на събития в дневника до дестинация. Appenders форматират събития с помощта на Layouts, преди да изпращат изходи.
  • Оформления или формати - Отговорен да определи как изглеждат данните, когато се появят в записа в дневника.

Можете да се обърнете към изображението по-долу за работата на трите компонента:



Компоненти за регистриране - Регистратор в Java - Edureka

Когато приложението направи извикване за регистриране, компонентът Logger записва събитието в LogRecord и го препраща към съответния Appender. След това форматира записа, използвайки Layout в съответствие с необходимия формат. Отделно от това, можете също да използвате повече от един филтър, за да посочите кои приложения да се използват за събития.

Сега нека да разберем какво е логер в Java в дълбочина.

Какво е Logger в Java?

Регистраторите в Java са обекти, които задействат събития в дневника. Те се създават и се извикват в кода на приложението, където генерират Log Events, преди да ги предадат на следващия компонент, който е Appender. Можете да използвате множество регистратори в един клас, за да отговорите на различни събития или да използвате регистратори в йерархия. Те обикновено се именуват с помощта на йерархичното пространство от имена, разделено с точки. Също така, всички имена на регистратора трябва да се основават на класа или името на пакета на регистрирания компонент.

Отделно от това, всеки регистратор държи запис на най-близкия съществуващ предшественик в Дневници пространство от имена и също има свързано „Ниво“. Е, ще обсъдя Loggers в последната част на тази статия, но преди това, нека ви покажа как да създадете Logger в Java.

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

Процесът на създаване на нов Logger в Java е доста прост. Трябва да използватеLogger.getLogger ()метод. ThegetLogger () идентифицира името на регистратора и приема низ като параметър. Така че, ако Logger съществува предварително, тогава Logger се връща, в противен случай се създава нов Logger.

Синтаксис:

статичен регистратор logger = Logger.getLogger (SampleClass.class.getName ())

Тук SampleClass е името на класа, за което получаваме обекта Logger.

Пример:

получи дължина на масива js
публичен клас Клиент {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Сега, след като ви казах как да създадете регистратор в Java, нека видим различните нива, налични в регистрирането.

Входни нива

Дневните нива се използват за категоризиране на регистрационните файлове по тяхната тежест или въздействието върху стабилността на приложението. Theorg.apache.log4j. *пакет иjava.util.loggingи двете осигуряват различни нива на регистриране. Нека да разгледаме всеки един от тях един по един.

org.apache.log4j. *пакетът предоставя следните нива в низходящ ред:

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

java.util.loggingпакетът предоставя следните нива в низходящ ред:

  • ТЕЖКО (НАЙ-ВИСОКО НИВО)
  • ВНИМАНИЕ
  • ИНФОРМАЦИЯ
  • КОНФИГ
  • ГЛОБА
  • ФИНЕР
  • НАЙ-ДОБРОТО (НИСКО НИВО)

Отделно от това, горният пакет осигурява и две допълнителни ниваВСИЧКОиИЗКЛизползва се за регистриране на всички съобщения и деактивиране на регистрирането съответно.

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

import org.apache.log4j.Logger публичен клас Клиент {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')}}

Така че, ако резултатът ви еroot logger като ниво на WARN в нашия log4j.properties файл, тогава всички съобщения за грешки с по-висок приоритет от ПРЕДУПРЕЖДЕНИЕ ще бъдат отпечатани както по-долу:

Можете също така да зададете нивото, като използвате метода 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, 'Добре дошли в Edureka!')}} клиент от публичен клас {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, 'Здравейте! Добре дошли от Edureka')}}

За да разрешите влизане във вашето приложение с помощта наorg.apache.log4j. *пакет илиjava.util.loggingпакет, трябва да конфигурирате файла със свойства. След това в тази статия за Logger в Java, нека обсъдим файла със свойствата и на двамата.

Файл със свойства на Log4j и Java Util Package

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

# Активирайте опцията за корен регистратор log4j.rootLogger = ИНФОРМАЦИЯ, файл, stdout # Прикачете приложения към файла за печат log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {гггг-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 = 10MB -> Максимален размер на регистрационния файл до 10MB
  • 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 = ПРЕДУПРЕЖДЕНИЕ # Изходът ще се съхранява в директорията по подразбиране 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 # Нивото на регистрационните файлове ще бъде ограничено до ПРЕДУПРЕЖДЕНИЕ и по-горе. java.util.logging.ConsoleHandler.level = ПРЕДУПРЕЖДЕНИЕ java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Тук,

случаен клас в Java пример
  • 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 = ПРЕДУПРЕЖДЕНИЕ -> Задава нивото на регистрационния файл по подразбиране на ПРЕДУПРЕЖДЕНИЕ
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->ПосочваФорматиранеда се използва от всичкиConsoleHandler'с. Тук се използва SimpleFormatter.

Регистрация на събития

За да влезете в събития , трябва да сте сигурни, че сте задали ниво за лесно попълване на събитията. За да зададете ниво и да споменете съобщение, можете да използвате следните методи:

Метод 1:

logger.log (Level.INFO, „Показване на съобщение“)
Тук нивото е INFO, а съобщението за отпечатване е „Показване на съобщението“.

Метод 2:

logger.info („Показване на съобщение“)

За да сте сигурни, че Logger в Java регистрира само събития, които са на или над ниво INFO, можете да използвате setLevel () метод, обсъден по-горе.

Сега, след като обсъдих как да използвам Logger в Java, нека обсъдим следващия компонент на архитектурата Log4j, т.е. Appenders.

Appender или манипулатори

Appender или Handlers са отговорни за записването на събития в дневника до дестинация. Всеки регистратор има достъп до множество манипулатори и получава съобщението от него. След това Appenders използват Formatters или Layouts, за да форматират събитията и да ги изпратят до съответната дестинация.

Appender може да бъде изключен чрез метода setLevel (Level.OFF). Двата най-стандартни манипулатора вjava.util.loggingпакет са както следва:

  • FileHandler: Напишете регистрационното съобщение към файла
  • ConsoleHandler: Записва регистрационното съобщение в конзолата

За вашето по-добро разбиране обясних няколко приложения в раздела за свойства.

Оформление или форматиране

Оформлението на Formatters се използва за форматиране и конвертиране на данни в дневник.Дневните рамки предоставят оформления за HTML, XML, Syslog, JSON, обикновен текст и други регистрационни файлове.

  1. SimpleFormatter : Генерира текстови съобщения с основна информация.
  2. XMLFormatter : Генерира XML съобщение за дневника

За ваше по-добро разбиране обясних няколко оформления в раздела за свойства.С това стигнахме до края на този блог на тема „Logger in Java“. Надявам се, че вие ​​сте наясно с това, което ви научиха в тази статия.

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „Logger in Java“ и ние ще се свържем с вас възможно най-скоро.