logo

Log4J Loggningsnivåer

Loggningsnivåer används för att kategorisera posterna i din loggfil. Men de kategoriserar på ett mycket specifikt sätt, d.v.s. efter brådska. Nivån låter dig separera följande typer av information:

pythonorm vs anakonda
  • Du kan filtrera dina loggfiler under sökningen.
  • Du kan hantera mängden information som du loggar.

Mängden och typen av information som ges i systemet och händelseloggar styrs av log4j-nivåinställningarna i konfigurationsfilen. Varje loggmeddelande föregås av meddelandets nivå.

Loggningsnivåerna är en instans av org.apache.log4j.Level klass.

Log4j har följande nivåer av loggning:

Loggnivå Beskrivning
ALLT Denna nivå aktiverar alla nivåer av loggning. Det inkluderar de anpassade loggningsnivåer som du har definierat. När den här är konfigurerad och nivåerna inte beaktas alls, kommer alla appendrar att börja hälla logghändelserna i loggfiler.
DEBUGA Debug används mycket för att felsöka applikationen vid utvecklingstillfället. Varje loggmeddelande kommer att visas för loggfiler när denna nivå är inställd. Det tillhör i princip utvecklare.
INFO INFO-loggningsnivån används för att spela in meddelanden om rutintillämpning. I realtid tittar systemadministratörer på informationsloggarna för att säkerställa vad som händer i systemet just nu och om det finns något problem i normalt flöde.
VARNA WARN-loggnivån används för att indikera att du kan ha ett problem och att du har upptäckt en ovanlig situation. Kanske krävde du att anropa en tjänst, och den misslyckades ett par gånger innan du anslöt på ett automatiskt nytt försök. Det är oväntat och ovanligt, men ingen verklig skada skedde, och det är inte känt om problemet kommer att kvarstå eller återkomma. Någon borde undersöka varningar.
FEL ERROR-loggnivån används för att beteckna ett allvarligt problem som du måste undersöka omedelbart. Inte lika allvarligt som FATAL, men fortfarande ett problem. Det betyder helt enkelt att din ansökan har fått ett riktigt oönskat tillstånd. Till exempel, oväntad formaterad indata, otillgänglighet i databasen.
DÖDLIG FATAL-loggnivån, liksom ERROR, anger ett problem. Men till skillnad från ERROR, betecknar det en mycket allvarlig felhändelse. Du kommer inte att överväga deras närvaro särskilt mycket en vanlig dag, men när de väl dyker upp signalerar det mycket dåliga nyheter, till och med tillämpningen av döden.
AV Detta är högsta möjliga rang och är avsett att stänga av loggning.
SPÅR Detta har nyligen introducerats i version 1.2 och innehåller mer information för att felsöka nivåloggar.

Hur ställer man in loggnivåer?

Ställ in loggnivå i log4j.properties

latex teckensnitt
 log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender 

Ställ in loggnivå i log4j.xml

 

Hur fungerar loggnivåer?

Arbetet med loggningsnivåer är faktiskt väldigt enkelt. Under körning kommer applikationskoden att skapa loggningsförfrågningar, som kommer att ha en nivå. Samtidigt har loggningsramverket en loggnivå konfigurerad, som fungerar som en tröskel. Om förfrågningsnivån är på den konfigurerade nivån eller högre nivå, loggas den till det konfigurerade målet. Om inte, förnekas det. Så enkelt är det.

Låt oss betrakta det som följande rangordning för nivåerna:

 ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>

Java-program:

java bubbla sortera
 import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } 

Nu kompilera och kör programmet ovan och vi skulle få följande utdata i filen c:/usr/home/log4j/log.out:

 Warn Message! Error Message! Fatal Message!