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:
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:
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ŠECHNO
aVYPNUTO
slouží 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ší.
- SimpleFormatter : Generuje textové zprávy se základními informacemi.
- 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.