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

Initialiser log4j-systemet korrekt advarsel

Tilføj koden

BasicConfigurator.configure();

i din statiske hovedklasse som nedenfor..

Bemærk:tilføj " \hadoop-2.7.1\share\hadoop\common\lib\commons-logging-1.1.3.jar &\hadoop-2.7.1\share\hadoop\common\lib\log4j-1.2 .17.jar "som de eksterne referencer

import org.apache.log4j.BasicConfigurator;

public class ViewCountDriver extends Configured implements Tool{

    public static void main(String[]args) throws Exception{

        BasicConfigurator.configure(); 

        int exitcode = ToolRunner.run(new ViewCountDriver(), args);
        System.exit(exitcode); 
    }
}

Fra linket i fejlmeddelelsen:

Dette sker, når standardkonfigurationsfilerne log4j.properties og log4j.xml ikke kan findes, og applikationen ikke udfører nogen eksplicit konfiguration. log4j bruger Thread.getContextClassLoader().getResource() til at finde standardkonfigurationsfilerne og kontrollerer ikke filsystemet direkte. At kende den passende placering til at placere log4j.properties eller log4j.xml kræver forståelse af søgestrategien for den klasseindlæser, der er i brug. log4j giver ikke en standardkonfiguration, da output til konsollen eller til filsystemet kan være forbudt i nogle miljøer. Se også FAQ:Hvorfor kan log4j ikke finde mine ejendomme i en J2EE- eller WAR-applikation?.

Konfigurationsfilen kan ikke findes. Bruger du xml eller en egenskabsfil?

Brug også logback!


Okay, så jeg fik det til at virke ved at ændre dette

log4j.rootLogger=DebugAppender

til dette

log4j.rootLogger=DEBUG, DebugAppender

Tilsyneladende skal du angive logningsniveauet til rootLogger først? Jeg undskylder, hvis jeg spildte nogens tid.

Jeg besluttede også at besvare mit eget spørgsmål, fordi dette ikke var et problem med klassestien.


Java tag