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?

1voto

jmort Punkte 63

Ich bin auf dieses Problem gestoßen, als ich versucht habe, eine ausführbare Jar-Datei mit Maven in Intellij 12 zu erstellen. Es stellte sich heraus, dass die log4j-Eigenschaftendatei auf der Root-Ebene (von der aus die jar-Datei ausgeführt wurde) nicht gefunden werden konnte, weil die Java-Manifestdatei keinen Klassenpfad enthielt.

Zu Ihrer Information: Ich habe den Logger wie folgt erhalten:

Logger log = LogManager.getLogger(MyClassIWantedToLogFrom.class);

Und ich konnte es mit einer pom-Datei, die dies enthielt, zum Laufen bringen:

         <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath> 
                        <mainClass>com.mycompany.mainPackage.mainClass</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>.</Class-Path> <!-- need to add current directory to classpath properties files can be found -->
                    </manifestEntries>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

1voto

bb1950328 Punkte 1198

Ich hatte dieses Problem auch. Ich habe einfach vergessen, das Ressourcenverzeichnis in IntelliJ IDEA zu markieren

  1. Klicken Sie mit der rechten Maustaste auf Ihr Verzeichnis
  2. Verzeichnis markieren als
  3. Ressourcen Wurzel

1voto

Varaj Vignesh Punkte 321

Vergewissern Sie sich, dass Ihr Projekt in Eclipse geöffnet ist, klicken Sie dann auf das Menü "Ausführen" oben in Eclipse und klicken Sie auf Folgendes:

  1. Laufen lassen

  2. Laufkonfigurationen

  3. Klassenpfad (Registerkarte)

  4. Benutzer-Einträge

  5. Glas auf der rechten Seite hinzufügen

  6. log4j jar-Datei hinzufügen

  7. Bewerbung

  8. Laufen lassen

Die Fehlermeldung sollte nicht mehr erscheinen.

1voto

John Zhang Punkte 933

Ich habe das gleiche Problem, wenn ich log4j2 verwenden. Mein Problem wird durch die Verwendung der falschen abhängigen Bibliothek verursacht:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <scope>runtime</scope>
    </dependency>

Stattdessen sollte ich verwenden:

<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

In meinem Fall habe ich eine log4j2.xml in meinem "resources"-Verzeichnis definiert und festgelegt, dass sie von verwendet wird:

System.setProperty("log4j.configurationFile", "log4j2.xml");

0voto

himansug Punkte 1

Erste Einfuhr:

 import org.apache.log4j.PropertyConfigurator;

Fügen Sie dann den folgenden Code zur Hauptmethode hinzu:

String log4jConfPath ="path to/log4j.properties";
PropertyConfigurator.configure(log4jConfPath);

Erstellen Sie eine Datei unter Pfad zu und fügen Sie den folgenden Code in diese Datei ein.

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n

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