Co je záznamník v Javě a proč jej používáte?



Tento článek o Loggeru v Javě je komplexní průvodce rozhraním Java Loging API používaným pro řešení protokolování při vytváření projektů.

Protokolování je důležitá funkce, kterou musí vývojáři vzít v úvahu, aby bylo možné zpětně vysledovat chyby. , který je jedním z nejpopulárnějších programovacích jazyků, přichází s přizpůsobitelným přístupem k protokolování poskytnutím základního protokolovacího API. V tomto článku o Loggeru v Javě tedy budu diskutovat o tom, jak pomocí této funkce lze povolit rozšiřitelné protokolování v Javě.

V tomto článku se budeme zabývat následujícími tématy:





    1. Potřeba protokolování
    2. Komponenty protokolování
    3. Co je Logger?
    4. Appender nebo Handlers
    5. Rozvržení nebo formátovače

Předtím se ponoříme do protokolování v Javě, pochopme potřebu protokolování.

Potřeba protokolování

Při vytváření aplikací často čelíme chybám, které je třeba ladit. Takže pomocí protokolů můžeme snadno získat informace o tom, co se děje v aplikaci, se záznamem chyb a neobvyklých okolností. Nyní by vás mohlo napadnout, proč nepoužívat příkaz System.out.print () v . Problém těchto prohlášení je, že zprávy protokolu budou vytištěny pouze na konzole. Jakmile tedy konzolu zavřete, automaticky se ztratí všechny protokoly. Protokoly proto nebudou ukládány trvale a jsou zobrazovány jeden po druhém, protože se jedná o prostředí s jedním vláknem.



Aby se těmto problémům předešlo, je přihlašování do Javy zjednodušeno pomocíAPI poskytované prostřednictvímjava.util.logováníbalíček aorg.apache.log4j. *balík.

Komponenty protokolování

Komponenty protokolování Java pomáhají vývojáři vytvářet protokoly, předávat protokoly příslušnému cíli a udržovat správný formát. Následují tři komponenty:

  • Dřevorubci - Odpovědný za zachycení záznamů protokolu a jejich předání příslušnému Dodatku.
  • Dodatky nebo manipulátory - Jsou odpovědní za zaznamenávání událostí protokolu do cíle. Appenders před odesláním výstupů formátují události pomocí rozložení.
  • Rozvržení nebo formátovače - Odpovědný za určení toho, jak vypadají data, když se objeví v položce protokolu.

Na níže uvedeném obrázku můžete vidět fungování všech tří komponent:



Logovací komponenty - Logger v Javě - Edureka

Když aplikace provede volání protokolování, komponenta Logger zaznamená událost do LogRecord a předá ji příslušnému Appenderu. Poté záznam naformátoval pomocí rozložení podle požadovaného formátu. Kromě toho můžete také použít více než jeden filtr k určení, které dodatky by se měly použít pro události.

jak vytvořit hlubokou kopii v Javě

Nyní pochopme, co je to záznamník v Javě do hloubky.

Co je Logger v Javě?

Loggery v Javě jsou objekty, které spouští logovací události. Jsou vytvářeny a jsou vyvolávány v kódu aplikace, kde generují Log Log před jejich předáním další komponentě, kterou je Appender. V jedné třídě můžete použít více protokolovačů k reakci na různé události nebo použít protokolovače v hierarchii. Obvykle jsou pojmenovány pomocí hierarchického jmenného prostoru odděleného tečkami. Všechna jména Loggeru musí také vycházet z třídy nebo názvu balíčku protokolované komponenty.

Kromě toho každý Logger sleduje nejbližšího existujícího předka v Protokoly jmenný prostor a je k němu přidružena také „úroveň“. V druhé části tohoto článku se budu zabývat Loggery, ale předtím vám ukážu, jak vytvořit Logger v Javě.

Vytvořit nový záznamník

Proces vytváření nového Loggeru v Javě je poměrně jednoduchý. Musíte použítLogger.getLogger ()metoda. ThegetLogger () identifikuje název Loggeru a jako parametr použije řetězec. Pokud tedy Logger již existuje, pak se tento Logger vrátí, jinak se vytvoří nový Logger.

Syntax:

statický záznamník Logger = Logger.getLogger (SampleClass.class.getName ())

Zde je SampleClass název třídy, pro kterou získáváme objekt Logger.

Příklad:

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

Nyní, když jsem vám řekl, jak vytvořit Logger v Javě, podívejme se na různé úrovně dostupné v protokolování.

Úrovně protokolu

Úrovně protokolů se používají ke kategorizaci protokolů podle jejich závažnosti nebo dopadu na stabilitu aplikace. Theorg.apache.log4j. *balíček ajava.util.logováníoba poskytují různé úrovně protokolování. Podívejme se na každou z nich jednu po druhé.

org.apache.log4j. *balíček poskytuje následující úrovně v sestupném pořadí:

jak vytvořit parametr v tablo
  • FATÁLNÍ
  • CHYBA
  • VAROVAT
  • INFO
  • LADIT

java.util.logováníbalíček poskytuje následující úrovně v sestupném pořadí:

  • ZÁVAŽNÉ (NEJVYŠŠÍ ÚROVEŇ)
  • VAROVÁNÍ
  • INFO
  • KONFIG
  • POKUTA
  • FINER
  • NEJLEPŠÍ (NEJNIŽŠÍ ÚROVEŇ)

Kromě toho výše uvedený balíček také poskytuje dvě další úrovněVŠECHNOaVYPNUTOslouží k protokolování všech zpráv a deaktivaci protokolování.

Příklad protokolování v Javě pomocíorg.apache.log4j. *balík:

import org.apache.log4j.Logger veřejná třída Zákazník {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 ('Konečný výstup')}}

Takže pokud je váš výstupkořenový záznamník jako úroveň VÝSTRAHA v našem log4j.properties soubor, pak se všechny chybové zprávy s vyšší prioritou než WARN vytisknou níže:

Úroveň můžete také nastavit pomocí metody setLevel () zjava.util.logováníbalíček níže:

logger.setLevel (ÚROVEŇ VAROVÁNÍ)

Příklad protokolování v Javě pomocíjava.util.logováníbalík:

balíček edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * třída EdurekaLogger {soukromý konečný statický Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) veřejný void sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} public class 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, 'Ahoj! Vítejte z Edureky')}}

Chcete-li povolit přihlášení do aplikace pomocíorg.apache.log4j. *balíček nebojava.util.logováníbalíček, musíte nakonfigurovat soubor vlastností. Dále v tomto článku o Loggeru v Javě pojďme diskutovat o souboru vlastností obou z nich.

Soubor vlastností balíčku Log4j a Java Util Package

Ukázkový soubor vlastností Log4j:

# Povolit volbu Root logger log4j.rootLogger = INFO, file, stdout # Připojit appendery k tisku souboru log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {rrrr-MM-dd HH: : ss}% -5p% c {1}:% L -% m% n # Připojte přílohy k tisku na konzole 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 {rrrr-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Soubor vlastností Log4j je vytvořen ve složce src projektu.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Vytiskne všechny protokoly do souboru
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Vytiskne všechny protokoly v konzole
  • log4j.appender.file.File = D: loglogging.log -> Určuje umístění souboru protokolu
  • log4j.appender.file.MaxFileSize = 10 MB -> Maximální velikost souboru protokolu na 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Omezuje počet záložních souborů na 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Určuje vzor, ​​ve kterém se protokoly vytisknou do souboru protokolu.
  • log4j.appender.file.layout.ConversionPattern =% d {rrrr-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Nastaví výchozí vzor převodu.

Vzorek Soubor vlastností balíčku Java Util

handlers = java.util.logging.ConsoleHandler .level = UPOZORNĚNÍ # Výstup bude uložen ve výchozím adresáři 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 # Úroveň protokolů bude omezena na VAROVÁNÍ a vyšší. java.util.logging.ConsoleHandler.level = VAROVÁNÍ java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Tady,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Byly by zapisovány soubory protokoluC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50 000 ->Maximální částka, kterou záznamník zapíše do libovolného souboru v bajtech.
  • java.util.logging.FileHandler.count = 1 -> Určuje počet výstupních souborů
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Uvádí formátovací modul použitý pro formátování. Zde se používá formátovač XML.
  • java.util.logging.ConsoleHandler.level = VAROVÁNÍ -> Nastaví výchozí úroveň protokolu na VAROVÁNÍ
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->UrčujeFormátovačbýt používán všemiConsoleHandler‚S. Zde se používá SimpleFormatter.

Protokolování událostí

Pro přihlášení událostí , musíte se ujistit, že jste přiřadili úroveň, která vám umožní snadno zaznamenat události. Chcete-li přiřadit úroveň a zmínit zprávu, můžete použít následující metody:

Metoda 1:

logger.log (Level.INFO, „Zobrazit zprávu“)
Zde je úroveň INFO a zpráva, která má být vytištěna, je 'Zobrazit zprávu'.

Metoda 2:

logger.info („Zobrazit zprávu“)

Abyste se ujistili, že Logger v Javě zaznamenává pouze události, které jsou na nebo nad úrovní INFO, můžete použít setLevel () výše diskutovaná metoda.

Nyní, když jsem diskutoval o tom, jak používat Logger v Javě, pojďme diskutovat o další součásti architektury Log4j, tj. Appenders.

Appender nebo Handlers

Appender nebo Handlers jsou zodpovědní za zaznamenávání událostí protokolu do cíle. Každý záznamník má přístup k více obslužným programům a přijímá zprávu protokolu od záznamníku. Poté Appenders používají formátovače nebo rozložení k formátování událostí a jejich odeslání do příslušného cíle.

Appender lze vypnout pomocí metody setLevel (Level.OFF). Dva nejstandardnější manipulátory vjava.util.logováníbalíček jsou následující:

  • FileHandler: Napište zprávu protokolu do souboru
  • ConsoleHandler: Zapíše zprávu protokolu do konzoly

Pro vaše lepší porozumění jsem v sekci vlastností vysvětlil několik dodatků.

Rozvržení nebo formátovače

Rozložení formátovacích modulů se používá k formátování a převodu dat v události protokolu.Rámečky protokolování poskytují rozložení pro protokoly HTML, XML, Syslog, JSON, prostý text a další.

  1. SimpleFormatter : Generuje textové zprávy se základními informacemi.
  2. XMLFormatter : Generuje zprávu XML pro protokol

Pro vaše lepší pochopení jsem vysvětlil několik rozložení v sekci vlastností.S tímto se dostáváme na konec tohoto blogu o „Logger in Java“. Doufám, že máte jasno v tom, co vás v tomto článku naučilo.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu „Logger in Java“ a my se vám ozveme co nejdříve.