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

Hvordan indstiller jeg log4j niveau på kommandolinjen?

Som en del af dine jvm-argumenter kan du indstille -Dlog4j.configuration=file:"<FILE_PATH>" . Hvor FILE_PATH er stien til din log4j.properties fil.

Bemærk venligst, at fra og med log4j2 er den nye systemvariabel, der skal bruges, log4j.configurationFile og du indsætter den faktiske sti til filen (dvs. uden file: præfiks), og det vil automatisk indlæse fabrikken baseret på udvidelsen af ​​konfigurationsfilen:

-Dlog4j.configurationFile=/path/to/log4jconfig.{ext}

Disse svar afholdt mig faktisk fra at prøve den enklest mulige ting! Du skal blot angive en tærskel for en appender (f.eks. "konsol") i din log4j.configuration sådan:

log4j.appender.console.threshold=${my.logging.threshold}

Inkluder derefter systemegenskaben -Dlog4j.info -Dmy.logging.threshold=INFO på kommandolinjen . Jeg antager, at enhver anden egenskab kan parametreres på denne måde, men dette er den nemmeste måde at hæve eller sænke logningsniveauet globalt.


Med Log4j2 kan dette opnås ved at bruge følgende hjælpemetode tilføjet til din kode.

private static void setLogLevel() {
  if (Boolean.getBoolean("log4j.debug")) {
    Configurator.setLevel(System.getProperty("log4j.logger"), Level.DEBUG);
  }
}

Du har brug for disse importer

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;

Kald nu setLogLevel metode i din main() eller hvor det er relevant, og videregiv kommandolinjeparametrene -Dlog4j.logger=com.mypackage.Thingie og -Dlog4j.debug=true .


Java tag