Регистрацията е важна характеристика, която трябва да се вземе предвид от разработчиците, за да се проследят грешките. , като един от най-популярните езици за програмиране, се предлага с персонализиран подход за регистриране чрез предоставяне на основен API за регистриране. И така, в тази статия за Logger в Java ще обсъдя как може да използва тази функция, за да разреши разширяемо регистриране в Java.
В тази статия ще бъдат разгледани следните теми:
Преди да се потопим дълбоко в регистрацията в java, нека разберем необходимостта от регистриране.
Необходимост от регистрация
Докато изграждаме приложения, често се сблъскваме с грешки, които трябва да бъдат отстранени. Така че, с помощта на дневници, можем лесно да получим информация за случващото се в приложението със запис на грешки и необичайни обстоятелства. Сега може да ви хрумне, че защо да не използвате оператора System.out.print () в . Е, проблемът с тези изявления е, че съобщенията в дневника ще бъдат отпечатвани само на конзолата. Така че, след като автоматично затворите конзолата, всички регистрационни файлове ще бъдат загубени. Следователно дневниците няма да се съхраняват постоянно и се показват един по един, тъй като това е среда с една нишка.
За да се избегнат подобни проблеми, влизането в Java се опростява с помощта наAPI, предоставен чрезjava.util.logging
пакет иorg.apache.log4j. *
пакет.
Вписване на компоненти
Компонентите за регистриране на Java помагат на разработчика да създава регистрационни файлове, да ги предава на съответната дестинация и да поддържа подходящ формат. Следват трите компонента:
- Дървачи - Отговаря за заснемането на регистрационни записи и предаването им на съответния заявител.
- Апендери или манипулатори - Те са отговорни за записването на събития в дневника до дестинация. Appenders форматират събития с помощта на Layouts, преди да изпращат изходи.
- Оформления или формати - Отговорен да определи как изглеждат данните, когато се появят в записа в дневника.
Можете да се обърнете към изображението по-долу за работата на трите компонента:
Когато приложението направи извикване за регистриране, компонентът 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, обикновен текст и други регистрационни файлове.
- SimpleFormatter : Генерира текстови съобщения с основна информация.
- XMLFormatter : Генерира XML съобщение за дневника
За ваше по-добро разбиране обясних няколко оформления в раздела за свойства.С това стигнахме до края на този блог на тема „Logger in Java“. Надявам се, че вие сте наясно с това, което ви научиха в тази статия.
Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „Logger in Java“ и ние ще се свържем с вас възможно най-скоро.