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
ellerlog4j.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
ellerlog4j.xml
.class
, enhver tilpasset initialiseringsklasse, såsomLogManager
, bør implementereorg.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.