Java >> Java tutorial >  >> Tag >> Log4j

Indstil log4j log niveau

Sæt i din junitklasse:

Logger.getRootLogger().setLevel(Level.TRACE);

et sted før udførelsen af ​​den testede metode. Det vil sætte tærskelniveauet for rodloggeren til TRACE.


Brug af en anden konfigurationsfil

Måske kunne du pege på en anden konfigurationsfil.

java -Dlog4j.configuration=config file yourApp

Hvor:

  • config , din konfigurationsfil, f.eks. log4j.properties eller log4j.xml .
  • file , logfilen, f.eks. myApp.log
  • yourApp , din app, f.eks. MyAppGUI

Eller du kan bruge en klasse

java -Dlog4j.configurationClass=config class yourApp

Hvor:

  • config , din konfigurationsfil, f.eks. log4j.properties eller log4j.xml .
  • class , enhver tilpasset initialiseringsklasse, såsom LogManager , bør implementere org.apache.log4j.spi.Configurator
  • yourApp , din app, f.eks. MyAppGUI

Du kan se mere i Apache log4j 1.2 - Kort introduktion til log4j på Standard initialiseringsprocedure afsnit.

Ændring af niveauet programmatisk

Desuden kan du også bruge de metoder, der tilbyder Logger klasse, såsom public void setLevel(Level level) , f.eks.:

Logger.getRootLogger().setLevel(Level.TRACE);

Da du kun vil have til testformål, kan du bruge dem. Men det anbefales ikke at bruge i klientkode, fordi de overskriver standardkonfigurationsparametrene i hårdkodet. Den bedste måde er at bruge en ekstern konfigurationsfil.


Hvis du bruger Maven, kan du have to log4j-konfigurationsfiler:

  • én i src/main/resources, der indeholder din produktionslogningskonfiguration
  • en i src/test/resources, der indeholder din testtidslogningskonfiguration

Maven vil automatisk bruge sidstnævnte på testtidspunktet og samle førstnævnte i din artefakt (JAR, WAR osv.), så den bruges i produktionen. Du behøver ikke rode rundt med kommandolinjekontakter eller noget.


Java tag