488 Stimmen

Es konnten keine Appenders für logger(log4j) gefunden werden?

Ich habe log4j zu meinem Buildpath hinzugefügt, aber ich erhalte die folgende Meldung, wenn ich meine Anwendung ausführe:

log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Was bedeuten diese Warnungen? Was ist der Absender hier?

0voto

ihossain Punkte 343

Die Lösung auf dieser Website hat bei mir funktioniert https://crunchify.com/java-how-to-configure-log4j-logger-property-correctly/ . Ich sehe jetzt überhaupt keine Warnungen von log4j

Ich habe dies in einer log4j.properties-Datei, die ich in src/main/resources

# This sets the global logging level and specifies the appenders
log4j.rootLogger=INFO, theConsoleAppender

# settings for the console appender
log4j.appender.theConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.theConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.theConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

0voto

yasin Punkte 49

Wenn Sie mit vielen Projekten zusammenarbeiten, können Sie ein Stilproblem haben.

*Sie müssen eine lof4j.properties-Datei haben und diese Datei ist in den Log-Eigenschaften des anderen Projekts enthalten.

*Außerdem können Sie versuchen, log4j-Eigenschaftsdateien in den src-Pfad zu legen, wenn das Projekt auf einem Linux-Betriebssystem läuft, können die Bibliotheken anderer Projekte und log4.properties-Dateien in einem Ordner an einem Ort auf dem Klassenpfad liegen.

0voto

NightWind Punkte 21

Vielleicht fügen Sie das relevante Projekt enthält log4j in Java-Build-Pfad, füge ich mahout_h2o in es, wenn ich dieses Problem in einem Mahout-Projekt mit Eclipse erfüllt, es funktioniert!

0voto

Brian Schalme Punkte 11

Si log4j.properties tatsächlich auf dem Klassenpfad liegt, Sie Spring Boot verwenden, um eine WAR-Datei für die Bereitstellung auf einem App-Server zu erstellen, lassen Sie eine web.xml Datei zu Gunsten von Spring Boot's autoconfigure verwenden, und Sie keinerlei Logmeldungen erhalten, müssen Sie Log4j explizit konfigurieren. Angenommen, Sie verwenden Log4j 1.2.x:

public class AppConfig extends SpringBootServletInitializer {

    public static void main( String[] args ) {
        // Launch the application
        ConfigurableApplicationContext context = SpringApplication.run( AppConfig.class, args );
    }

    @Override
    protected SpringApplicationBuilder configure( SpringApplicationBuilder application ) {
        InputStream log4j = this.getClass().getClassLoader().getResourceAsStream("log4j.properties");
        PropertyConfigurator.configure(log4j);
        return application;
    }

// Other beans as required...
}

0voto

Abdull Punkte 24487

Meine Eclipse-Installation konnte nicht finden log4j.properties beim Laufen JUnit Tests von Eclipse aus, obwohl sich die Datei unter src/test/resources .

Der Grund dafür war, dass Eclipse (oder die m2e Konnektor) kopierte keine Inhalte von src/test/resources in den erwarteten Ausgabeordner target/test-classes - Die Hauptursache war, dass in den Eigenschaften des Projekts unter Java-Erstellungspfad -> Quelle Registerkarte -> Quellordner im Erstellungspfad -> src/test/resources irgendwie gab es eine Excluded: ** Eintrag. Ich habe diesen ausgeschlossen Eintrag.

Alternativ hätte ich auch manuell kopieren können src/test/resources/log4j.properties a target/test-classes/log4j.properties .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X