Log4j ConsoleAppender Konfigurationseksempel
Enhver logningsapplikation, der er beregnet til at udskrive logningsoplysningerne til en konsol, skal bruge org.apache.log4j.ConsoleAppender
. Konsoltilføjelse er en simpel klasse designet til at skrive logningsoplysningerne til enten System.out
eller System.err
.
I dette eksempel vil vi forsøge at vise, hvordan man bruger org.apache.log4j.ConsoleAppender
for at udskrive logfilerne i applikationskonsollen ved hjælp af Log4j
logningstjenester.
1. Introduktion
Udskrivning af beskeder til konsollen er en integreret del af udviklingstesten og fejlretningen af et Java-program. Hvis udviklere arbejder på en serversideapplikation, hvor de ikke kan se, hvad der foregår inde på serveren, så er deres eneste synlighedsværktøj en logfil .
Uden logfiler kan udviklere ikke foretage nogen fejlfinding eller se, hvad der foregår inde i applikationen. Selvom Java har ret praktisk System.out.println()
metoder til at udskrive noget på konsollen, som også kan omdirigeres til logfilen, men ikke tilstrækkeligt til en virkelig Java-applikation.
Hvis udviklere kører et Java-program i Linux- eller Unix-baserede systemer, Log4j
eller SLF4j
eller enhver anden logningsramme tilbyder en masse funktioner, fleksibilitet og forbedring af meddelelseskvalitet, hvilket ikke er muligt ved hjælp af System.out.println()
udsagn.
1.1 Hvad er Log4j?
Log4j er en enkel, fleksibel og hurtig Java-baseret logningsramme. Det er trådsikkert og understøtter internationalisering. Vi har hovedsageligt 3 komponenter at arbejde med Log4j
:
- Logger :Den bruges til at logge meddelelserne.
- Tillæg :Det bruges til at offentliggøre logningsoplysningerne til destinationen som en fil, database, konsol osv.
- Layout :Det bruges til at formatere logoplysninger i forskellige stilarter.
1.1.1 Log4j Logger Class
Logger
klasse giver metoderne til logningsprocessen. Vi kan bruge getLogger()
metode til at få Logger
objekt. Syntaksen er angivet nedenfor:
static Logger log = Logger.getLogger(YourClassName.class);
Logger
klasse har 5 logningsmetoder, som bruges til at udskrive status for en applikation:
Beskrivelse | Metodesyntaks | |
---|---|---|
debug(Objektmeddelelse) | Det bruges til at udskrive meddelelsen med niveauet org.apache.log4j.Level.DEBUG . | public void debug(Object message) |
fejl(Objektmeddelelse) | Det bruges til at udskrive meddelelsen med niveauet org.apache.log4j.Level.ERROR . | public void error(Object message) |
info(Objektmeddelelse) | Det bruges til at udskrive beskeden med niveauet org.apache.log4j.Level.INFO . | public void info(Object message) |
fatal(Objektmeddelelse) | Det bruges til at udskrive meddelelsen med niveauet org.apache.log4j.Level.FATAL . | public void fatal(Object message) |
advarsel(Objektmeddelelse) | Det bruges til at udskrive meddelelsen med niveauet org.apache.log4j.Level.WARN . | public void warn(Object message) |
trace(Objektmeddelelse) | Det bruges til at udskrive meddelelsen med niveauet org.apache.log4j.Level.TRACE . | public void trace(Object message) |
For at opsummere er prioritetsniveauet givet nedenfor.
Trace < Debug < Info < Warn < Error < Fatal
Hvor org.apache.log4j.Level.FATAL
har den højeste prioritet og org.apache.log4j.Level.Trace
har den laveste .
1.1.2 Log4j Appender Interface
Appender
er en grænseflade, som primært er ansvarlig for at udskrive logningsmeddelelserne til de forskellige destinationer såsom konsol, filer, sockets, database osv. I Log4j
vi har forskellige typer Appender
implementeringsklasser.
Fig. 1:Log4j Appender
1.1.3 Log4j Layout Klasse
Layout
komponent angiver det format, som log-sætningerne skrives ind i destinationslageret af Appender
. I Log4j
vi har forskellige typer Layout
implementeringsklasser.
Fig. 2:Log4j Layout
1.2 Hvorfor foretrækker Log4j frem for System.out.println?
Nedenfor er nogle af grundene, som er nok til at forstå begrænsningen ved at bruge System.out.println()
:
- Enhver logningsramme giver udviklere mulighed for at logge fejlfindingsoplysninger med et logniveau, der kan bruges som filtreringskriterier, dvs. man kan deaktivere meddelelsen, der tilhører et bestemt logniveau. For eksempel ville udviklere være mere bekymrede for at se
WARN
beskeder endDEBUG
beskeder i produktionsmiljøet - Loggeramme kan producere bedre output og metadata, som hjælper med at fejlfinde og fejlfinde. For f.eks.
Log4j
gør det muligt at udskrive formateret output ved at angive et formateringsmønster, dvs. ved at brugePatternLayout
man kan inkludere et tidsstempel, klassenavn osv.
Åbn nu Eclipse IDE, og lad os begynde at bygge applikationen!
2. Log4j ConsoleAppender-konfigurationseksempel
Nedenfor er de trin, der er involveret i udviklingen af denne applikation.
2.1 Anvendte værktøjer
Vi bruger Eclipse Kepler SR2, JDK 8 og Log4j Jar. Når det er sagt, har vi testet koden mod JDK 1.7, og det fungerer godt.
2.2 Projektstruktur
Lad os først gennemgå den endelige projektstruktur, hvis du er i tvivl om, hvor du skal oprette de tilsvarende filer eller mappe senere!
Fig. 3:Ansøgningsprojektstruktur
2.3 Projektoprettelse
Dette afsnit vil demonstrere, hvordan man opretter et Java-baseret Maven-projekt med Eclipse
Fig. 4:Opret Maven Project
I vinduet New Maven Project vil det bede dig om at vælge en projektplacering. Som standard er "Brug standardarbejdspladsplacering ’ vil blive valgt. Vælg "Opret et simpelt projekt (spring over arketypevalg) ' afkrydsningsfeltet og klik bare på næste knap for at fortsætte.
Fig. 5:Projektdetaljer
Den vil bede dig om at 'Indtast gruppen og artefakt-id'et for projektet'. Vi vil indtaste detaljerne som vist på billedet nedenfor. Versionsnummeret vil som standard være:0.0.1-SNAPSHOT
.
Fig. 6:Arketypeparametre
Klik på afslut og oprettelsen af et maven-projekt vil blive afsluttet. Hvis du observerer, har den downloadet maven-afhængighederne og en pom.xml
filen vil blive oprettet. Den vil have følgende kode:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Log4jConsoleAppender</groupId> <artifactId>Log4jConsoleAppender</artifactId> <version>0.0.1-SNAPSHOT</version> </project>
Vi kan begynde at tilføje de afhængigheder, som udviklere ønsker som Log4j, JUnit osv. Lad os begynde at bygge applikationen!
3. Applikationsbygning
Nedenfor er de trin, der er involveret i udviklingen af denne applikation.
3.1 Maven-afhængigheder
I dette eksempel bruger vi den mest stabile Log4j-version (dvs. log4j-1.2.17
) for at opsætte logningsrammen. Den opdaterede filen vil have følgende kode:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Log4jConsoleAppender</groupId> <artifactId>Log4jConsoleAppender</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> </project>
3.2 Java-klasseoprettelse
Lad os oprette de nødvendige Java-filer. Højreklik på src/main/java
mappe, New -> Package
.
Fig. 7:Java-pakkeoprettelse
Et nyt pop-vindue åbnes, hvor vi indtaster pakkenavnet som:com.jcg.log4j.console.appender
.
Fig. 8:Java-pakkenavn (com.jcg.log4j.console.appender)
Når pakken er oprettet, skal vi oprette implementeringsklassen. Højreklik på den nyoprettede pakke, New -> Class
.
Fig. 9:Java-klasseoprettelse
Et nyt pop-vindue åbnes og indtast filnavnet som:Log4jDemo
. Implementeringsklassen vil blive oprettet inde i pakken:com.jcg.log4j.console.appender
.
Fig. 10:Java-klasse (Log4jDemo.java)
3.2.1 Implementering af hjælpeklasse
Lad os skrive et hurtigt Java-program og skrive logfilerne i konsollen ved hjælp af Log4j
konfiguration. Tilføj følgende kode til det:
Log4jDemo.java
package com.jcg.log4j.console.appender; import org.apache.log4j.Logger; public class Log4jDemo { static Logger logger = Logger.getLogger(Log4jDemo.class); public static void main(String[] args) { // Logging The Output In The Console logger.debug("Hello! Log4j Console Appender Configuration Is Successfully Completed...!"); } }
3.3 Log4j-konfigurationsfil
Log4j
vil normalt blive konfigureret ved hjælp af en egenskabsfil eller XML-fil. Så når logerklæringerne er på plads, kan udviklere nemt kontrollere dem ved hjælp af den eksterne konfigurationsfil uden at ændre kildekoden.
log4j.properties
filen er en Log4j
konfigurationsfil, som holder egenskaber i nøgleværdi-par. Som standard er LogManager
leder efter en fil med navnet log4j.properties
i CLASSPATH
. For at konfigurere logningsrammerne skal vi implementere en konfigurationsfil, dvs. log4j.properties
. Tilføj følgende kode til det:
log4j.properties
# Root Location Option !! log4j.rootCategory=debug,console # Package Based Logging log4j.logger.com.jcg.log4j.console.appender=debug,console log4j.additivity.com.jcg.log4j.console.appender=false # Redirect Log Messages To Console !! log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.out log4j.appender.console.immediateFlush=true log4j.appender.console.encoding=UTF-8 log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Bemærk :De konfigurerbare egenskaber for ConsoleAppender
er beskrevet nedenfor:
Ejendom | Beskrivelse |
---|---|
immediateFlush | Bruges til at indstille, om konsolstrømmen skal skylles med hver logningsoutputanmodning. |
encoding | Bruges til at tilsidesætte standard tegnkodningsskemaet. |
target | Bruges til at udskrive enten System.out eller System.err . Standarden er System.out . |
4. Kør programmet
For at køre programmet skal du højreklikke på Log4jDemo
klasse, Run As -> Java Application
. Udviklere kan fejlsøge eksemplet og se, hvad der sker efter hvert trin. God fornøjelse!
Fig. 11:Kør applikation
5. Projektdemo
Når vi udfører eksemplet, vil outputtet blive vist på konsollen.
Fig. 12:Log-output
Det er alt for dette indlæg. God læring!!
6. Konklusion
Det er alt for at få udviklerne i gang med Log4j-eksemplet. Vi vil se nærmere på flere funktioner i de næste indlæg. Jeg håber, at denne artikel tjente dig, hvad end du ledte efter. Udviklere kan downloade eksempelapplikationen som et Eclipse-projekt i afsnittet Downloads.
7. Download Eclipse Project
Dette var et eksempel på Log4j Console Appender.log4j