Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java-logboekregistratie

Java-logboekregistratie

In deze zelfstudie leren we over Java Logging en de verschillende componenten ervan aan de hand van voorbeelden.

Java stelt ons in staat om logberichten en bestanden te maken en vast te leggen via het logproces.

In Java vereist logging frameworks en API's. Java heeft een ingebouwd lograamwerk in de java.util.logging pakket.

We kunnen ook frameworks van derden gebruiken, zoals Log4j, Logback en nog veel meer voor logdoeleinden.


Java Logging-componenten

De onderstaande afbeelding geeft de kerncomponenten en de controlestroom van de Java Logging API weer (java.util.logging ).

1. Logger

De Logger class biedt methoden voor het loggen. We kunnen objecten van de Logger . instantiëren class en roep zijn methoden op voor logdoeleinden.

Laten we een voorbeeld nemen.

Logger logger = Logger.getLogger("newLoggerName");

De getLogger() methode van de Logger class wordt gebruikt om een ​​nieuwe Logger . te vinden of te maken . Het stringargument definieert de naam van de logger.

Hier creëert dit een nieuwe Logger object of retourneert een bestaande Logger met dezelfde naam.

Het is een conventie om een ​​Logger . te definiëren na de huidige les met class.getName() .

Logger logger = Logger.getLogger(MyClass.class.getName());

Opmerking: Deze methode genereert NullPointerException als de doorgegeven naam null . is .

Elke Logger heeft een niveau dat het belang van het logbericht bepaalt. Er zijn 7 basislogniveaus:

Logniveau (in aflopende volgorde) Gebruik
ERNSTIG ernstige fout
WAARSCHUWING waarschuwingsbericht, een potentieel probleem
INFO algemene runtime-informatie
CONFIG configuratie-informatie
FIJN algemene ontwikkelaarsinformatie (opsporingsberichten)
FIJNER gedetailleerde ontwikkelaarsinformatie (opsporingsberichten)
FIJNSTE zeer gedetailleerde ontwikkelaarsinformatie (opsporingsberichten)
UIT loggen uitschakelen voor alle niveaus (niets vastleggen)
ALLE loggen inschakelen voor alle niveaus (alles vastleggen)

Elk logniveau heeft een geheel getal dat hun ernst bepaalt, behalve twee speciale logniveaus OFF en ALL .


Het bericht loggen

Standaard worden de bovenste drie logniveaus altijd gelogd. Om een ​​ander niveau in te stellen, kunnen we de volgende code gebruiken:

logger.setLevel(Level.LogLevel);

// example
logger.setLevel(Level.FINE);

In dit voorbeeld alleen niveau FINE en niveaus erboven zijn ingesteld om te worden gelogd. Alle andere logberichten worden verwijderd.

Om nu een bericht te loggen, gebruiken we de log() methode.

logger.log(Level.LogLevel, "log message");

// example
logger.log(Level.INFO, "This is INFO log level message");

Er zijn verkorte methoden om op de gewenste niveaus te loggen.

logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");

Alle logverzoeken die het ingestelde logniveau hebben overschreden, worden vervolgens doorgestuurd naar het LogRecord .

Opmerking: Als het niveau van een logger is ingesteld op null , het niveau wordt geërfd van het bovenliggende niveau, enzovoort.


2. Filters

Een filter (indien aanwezig) bepaalt of de LogRecord moet worden doorgestuurd of niet. Zoals de naam al doet vermoeden, filtert het de logberichten volgens specifieke criteria.

Een LogRecord wordt alleen doorgegeven van de logger naar de log-handler en van de log-handler naar externe systemen als het voldoet aan de gespecificeerde criteria.

// set a filter
logger.setFilter(filter);

// get a filter
Filter filter = logger.getFilter();

3. Handlers (Appenders)

De log-handler of de appenders ontvangen het LogRecord en exporteert het naar verschillende doelen.

Java SE biedt 5 ingebouwde handlers:

Handlers Gebruik
StreamHandler schrijft naar een OutputStream
ConsoleHandler schrijft naar console
FileHandler schrijft naar bestand
SocketHandler schrijft naar externe TCP-poorten
MemoryHandler schrijft naar het geheugen

Een handler kan het LogRecord . doorgeven naar een filter om opnieuw te bepalen of het kan worden doorgestuurd naar externe systemen of niet.

Om een ​​nieuwe handler toe te voegen, gebruiken we de volgende code:

logger.addHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);

Om een ​​handler te verwijderen, gebruiken we de volgende code:

logger.removeHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);

Een logger kan meerdere handlers hebben. Om alle handlers te krijgen, gebruiken we de volgende code:

Handler[] handlers = logger.getHandlers();

4. Formatteerders

Een handler kan ook een Formatter . gebruiken om het LogRecord . te formatteren object in een tekenreeks voordat u het naar externe systemen exporteert.

Java SE heeft twee ingebouwde formatters :

Opmaak Gebruik
SimpleFormatter formaten LogRecord aan rijgen
XMLFormatter formaten LogRecord naar XML-formulier

We kunnen de volgende code gebruiken om een ​​handler te formatteren:

// formats to string form
handler.setFormatter(new SimpleFormatter());

// formats to XML form
handler.setFormatter(new XMLFormatter());

LogManager

De LogManager object houdt de globale logboekinformatie bij. Het leest en onderhoudt de logging-configuratie en de logger-instanties.

De logmanager is een singleton, wat betekent dat er maar één instantie van wordt gemaakt.

Om de logmanager-instantie te verkrijgen, gebruiken we de volgende code:

LogManager manager = new LogManager();

Voordelen van loggen

Hier zijn enkele voordelen van inloggen in Java.

  • helpt bij het bewaken van de voortgang van het programma
  • helpt bij het vastleggen van eventuele fouten
  • biedt ondersteuning voor probleemdiagnose en foutopsporing

Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java-beweringen
  10. Java-vector
  11. Aanmelden bij Java:belangrijke tips om te overwegen