Was ist Logger in Java und warum verwenden Sie es?



Dieser Artikel zu Logger in Java ist eine umfassende Anleitung zur Java-Protokollierungs-API, die zum Protokollieren von Lösungen beim Erstellen von Projekten verwendet wird.

Die Protokollierung ist eine wichtige Funktion, die von den Entwicklern berücksichtigt werden muss, um die Fehler zurückzuverfolgen. Als eine der beliebtesten Programmiersprachen bietet sie einen anpassbaren Ansatz für die Protokollierung, indem sie eine grundlegende Protokollierungs-API bereitstellt. In diesem Artikel über Logger in Java werde ich erläutern, wie Mit dieser Funktion können Sie die erweiterbare Protokollierung in Java aktivieren.

Die folgenden Themen werden in diesem Artikel behandelt:





    1. Notwendigkeit der Protokollierung
    2. Komponenten protokollieren
    3. Was ist Logger?
    4. Appender oder Handler
    5. Layout oder Formatierer

Bevor wir uns eingehend mit der Anmeldung in Java befassen, sollten wir die Notwendigkeit der Anmeldung verstehen.

Notwendigkeit der Protokollierung

Beim Erstellen von Anwendungen treten häufig Fehler auf, die behoben werden müssen. Mithilfe von Protokollen können wir auf einfache Weise Informationen über die Vorgänge in der Anwendung mit einer Aufzeichnung von Fehlern und ungewöhnlichen Umständen abrufen. Nun könnte es Ihnen in den Sinn kommen, warum nicht die System.out.print () -Anweisung in verwenden . Das Problem mit diesen Anweisungen ist, dass Protokollnachrichten nur auf der Konsole gedruckt werden. Sobald Sie die Konsole schließen, gehen automatisch alle Protokolle verloren. Daher werden Protokolle nicht dauerhaft gespeichert und einzeln angezeigt, da es sich um eine Umgebung mit einem Thread handelt.



Um solche Probleme zu vermeiden, wird die Anmeldung in Java mithilfe von vereinfachtAPI bereitgestellt über diejava.util.loggingPaket und dieorg.apache.log4j. *Paket.

Komponenten protokollieren

Die Java-Protokollierungskomponenten helfen dem Entwickler, Protokolle zu erstellen, die Protokolle an das jeweilige Ziel zu übergeben und ein ordnungsgemäßes Format beizubehalten. Das Folgende sind die drei Komponenten:

  • Logger - Verantwortlich für die Erfassung von Protokolldatensätzen und deren Weitergabe an den entsprechenden Appender.
  • Appender oder Handler - Sie sind für die Aufzeichnung von Protokollereignissen an einem Ziel verantwortlich. Appender formatieren Ereignisse mithilfe von Layouts, bevor sie Ausgaben senden.
  • Layouts oder Formatierer - Verantwortlich dafür, wie Daten aussehen, wenn sie im Protokolleintrag angezeigt werden.

In der folgenden Abbildung finden Sie Informationen zur Funktionsweise aller drei Komponenten:



Protokollierungskomponenten - Logger in Java - Edureka

Wenn eine Anwendung einen Protokollierungsaufruf ausführt, zeichnet die Logger-Komponente das Ereignis in einem LogRecord auf und leitet es an den entsprechenden Appender weiter. Anschließend wurde der Datensatz mithilfe des Layouts entsprechend dem erforderlichen Format formatiert. Abgesehen davon können Sie auch mehrere Filter verwenden, um anzugeben, welche Appender für Ereignisse verwendet werden sollen.

Lassen Sie uns nun verstehen, was ein Logger in Java ist.

Was ist Logger in Java?

Logger in Java sind Objekte, die Protokollereignisse auslösen. Sie werden erstellt und im Code der Anwendung aufgerufen. Dort generieren sie Protokollereignisse, bevor sie an die nächste Komponente übergeben werden, die ein Appender ist. Sie können mehrere Logger in einer Klasse verwenden, um auf verschiedene Ereignisse zu reagieren, oder Logger in einer Hierarchie verwenden. Sie werden normalerweise mit dem hierarchischen, durch Punkte getrennten Namespace benannt. Außerdem müssen alle Logger-Namen auf der Klasse oder dem Paketnamen der protokollierten Komponente basieren.

Abgesehen davon verfolgt jeder Logger den nächsten vorhandenen Vorfahren in der Protokolle Namespace und hat auch eine 'Ebene' zugeordnet. Nun, ich werde die Logger im letzten Teil dieses Artikels besprechen, aber vorher möchte ich Ihnen zeigen, wie man einen Logger in Java erstellt.

Neuen Logger erstellen

Das Erstellen eines neuen Loggers in Java ist recht einfach. Du musst benutzenLogger.getLogger ()Methode. DasgetLogger () Identifiziert den Namen des Loggers und verwendet die Zeichenfolge als Parameter. Wenn also ein Logger vorhanden ist, wird dieser Logger zurückgegeben, andernfalls wird ein neuer Logger erstellt.

Syntax:

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

Hier ist SampleClass der Klassenname, für den wir das Logger-Objekt erhalten.

Beispiel:

Konvertieren Sie Dezimal in Binär in Python
öffentliche Klasse Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Nachdem ich Ihnen erklärt habe, wie Sie einen Logger in Java erstellen, lassen Sie uns die verschiedenen Ebenen der Protokollierung anzeigen.

Protokollebenen

Protokollebenen werden verwendet, um die Protokolle nach ihrem Schweregrad oder den Auswirkungen auf die Stabilität der Anwendung zu kategorisieren. Dasorg.apache.log4j. *Paket und diejava.util.loggingBeide bieten unterschiedliche Protokollierungsstufen. Schauen wir uns jeden einzeln an.

org.apache.log4j. *Das Paket bietet die folgenden Ebenen in absteigender Reihenfolge:

  • TÖDLICH
  • ERROR
  • WARNEN
  • DIE INFO
  • DEBUGGEN

java.util.loggingDas Paket bietet die folgenden Ebenen in absteigender Reihenfolge:

  • SCHWERE (HÖCHSTE EBENE)
  • WARNUNG
  • DIE INFO
  • KONFIG
  • FEIN
  • FINER
  • FINEST (LOWEST LEVEL)

Abgesehen davon bietet das obige Paket zwei zusätzliche EbenenALLEundAUSWird zum Protokollieren aller Nachrichten bzw. zum Deaktivieren der Protokollierung verwendet.

Beispiel für die Anmeldung in Java mit demorg.apache.log4j. *Paket:

import org.apache.log4j.Logger öffentliche Klasse 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')}}

Also, wenn Ihre Ausgabe istRoot-Logger als WARN-Ebene in unserer log4j.properties Datei, dann werden alle Fehlermeldungen mit einer höheren Priorität als WARN wie folgt gedruckt:

Sie können die Ebene auch mithilfe der setLevel () -Methode aus dem festlegenjava.util.loggingPaket wie folgt:

logger.setLevel (Level.WARNING)

Beispiel für die Anmeldung in Java mit demjava.util.loggingPaket:

Paket edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * Klasse EdurekaLogger {privater endgültiger statischer Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) public void sampleLog () {LOGGER.log (Level.WARNING, 'Willkommen bei Edureka!')}} public class Kunde {public static void main (String [] args) {EdurekaLogger obj = neuer EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Hi! Willkommen von Edureka')}}

Um die Anmeldung in Ihrer Anwendung zu aktivieren, verwenden Sie dieorg.apache.log4j. *Paket oder diejava.util.loggingPaket müssen Sie die Eigenschaftendatei konfigurieren. Lassen Sie uns als nächstes in diesem Artikel über Logger in Java die Eigenschaftendatei von beiden diskutieren.

Eigenschaftendatei von Log4j und Java Util Package

Beispieldatei für Log4j-Eigenschaften:

# Aktivieren Sie die Root-Logger-Option log4j.rootLogger = INFO, file, stdout. # Anhänge an die Druckdatei anhängen. 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 {JJJJ-MM-TT HH: mm : ss}% -5p% c {1}:% L -% m% n # Anhängen von Anhängen an die Konsole anhängen 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 {JJJJ-MM-TT HH: mm: ss}% -5p% c {1}:% L. -% m% n
  • Die Log4j-Eigenschaftendatei wird im Ordner src des Projekts erstellt.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Druckt alle Protokolle in einer Datei
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Druckt alle Protokolle in der Konsole
  • log4j.appender.file.File = D: loglogging.log -> Gibt den Speicherort der Protokolldatei an
  • log4j.appender.file.MaxFileSize = 10 MB -> Maximale Größe der Protokolldatei auf 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Begrenzt die Anzahl der Sicherungsdateien auf 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Gibt das Muster an, in dem Protokolle in die Protokolldatei gedruckt werden.
  • log4j.appender.file.layout.ConversionPattern =% d {JJJJ-MM-TT HH: mm: ss}% -5p% c {1}:% L -% m% n -> Legt das Standardkonvertierungsmuster fest.

Stichprobe Java Util Package Properties File

handlers = java.util.logging.ConsoleHandler .level = WARNUNG # Die Ausgabe wird im Standardverzeichnis java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = gespeichert 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Die Protokollstufe ist auf WARNING und höher beschränkt. java.util.logging.ConsoleHandler.level = WARNUNG java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Hier,

Was ist ein Token Java
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Protokolldateien werden geschriebenC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Die maximale Menge, die der Logger in Byte in eine Datei schreibt.
  • java.util.logging.FileHandler.count = 1 -> Gibt die Anzahl der Ausgabedateien an
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Erwähnt den für die Formatierung verwendeten Formatierer. Hier wird XML Formatter verwendet.
  • java.util.logging.ConsoleHandler.level = WARNUNG -> Setzt die Standardprotokollstufe auf WARNUNG
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->Gibt die anFormatierervon allen benutzt werdenConsoleHandler'S. Hier wird SimpleFormatter verwendet.

Ereignisse protokollieren

So melden Sie Ereignisse an müssen Sie sicherstellen, dass Sie eine Ebene zuweisen, um die Ereignisse einfach herauszufiltern. Um eine Ebene zuzuweisen und eine Nachricht zu erwähnen, können Sie die folgenden Methoden verwenden:

Methode 1:

logger.log (Level.INFO, 'Nachricht anzeigen')
Hier ist Level INFO und die zu druckende Nachricht ist 'Display Message'.

Methode 2:

logger.info ('Nachricht anzeigen')

Um sicherzustellen, dass Logger in Java nur Ereignisse protokolliert, die sich auf oder über der INFO-Ebene befinden, können Sie die verwenden setLevel () oben diskutierte Methode.

Nachdem ich nun die Verwendung von Logger in Java erläutert habe, wollen wir die nächste Komponente der Log4j-Architektur, d. H. Appenders, erläutern.

Appender oder Handler

Appender oder Handler sind für die Aufzeichnung von Protokollereignissen an einem Ziel verantwortlich. Jeder Logger hat Zugriff auf mehrere Handler und empfängt die Log-Nachricht vom Logger. Anschließend verwenden Appender Formatierer oder Layouts, um die Ereignisse zu formatieren und an das entsprechende Ziel zu senden.

Ein Appender kann mit der Methode setLevel (Level.OFF) deaktiviert werden. Die zwei Standardhandler in derjava.util.loggingPaket sind wie folgt:

  • FileHandler: Schreiben Sie die Protokollnachricht in die Datei
  • ConsoleHandler: Schreibt die Protokollnachricht in die Konsole

Zum besseren Verständnis habe ich im Abschnitt Eigenschaften einige Appender erläutert.

Layout oder Formatierer

Das Layout von Formatierern wird zum Formatieren und Konvertieren von Daten in einem Protokollereignis verwendet.Protokollierungsframeworks bieten Layouts für HTML, XML, Syslog, JSON, Nur-Text und andere Protokolle.

  1. SimpleFormatter : Erzeugt Textnachrichten mit grundlegenden Informationen.
  2. XMLFormatter : Erzeugt eine XML-Nachricht für das Protokoll

Zum besseren Verständnis habe ich im Abschnitt Eigenschaften einige Layouts erläutert.Damit kommen wir zum Ende dieses Blogs über „Logger in Java“. Ich hoffe, euch ist klar, was euch in diesem Artikel beigebracht wurde.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „Logger in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.