log4j2-gelf "FEHLER StatusLogger appenders enthält ein ungültiges element oder-Attribut "GELF" "
nur gestartet, um in Graylog2 und einloggen wollte einige Java-Anwendungen über GELF-Eingang.
Deshalb habe ich die Bibliothek log4j2 und fügte hinzu, die graylog2-gelfclient. Alle Abhängigkeiten erfüllt sind und das programm ausgeführt. Aber die Initialisierung meiner Logmanager wirft die folgende Fehlermeldung:
ERROR StatusLogger appenders contains an invalid element or attribute "GELF"
Mein code ist nur die Protokollierung, ein Fehler an den logger:
static final Logger logger = LogManager.getLogger(Application.class);
public static void main(String[] args) {
logger.error("This is an error log entry");
}
}
und meine log4j2.xml die Datei ist so konfiguriert, GELF und der GelfAppender:
<configuration status="OFF">
<appenders>
<GELF name="gelfAppender" server="192.168.1.1" port="12201" hostName="myhost"/>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="gelfAppender"/>
</root>
</loggers>
</configuration>
Ist jemand vertraut mit diesem problem? Vielen Dank für jede Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie es ist entweder ein problem mit den Abhängigkeiten, oder log4j hat noch einige andere Probleme laden oder initialisieren des GELF appender-plugin. Es kann eine gute Idee zu erwähnen, die Ihre genauen Abhängigkeiten, sowohl für log4j2 und log4j2-gelf. (Sonst haben wir zu erraten,...)
Darüber hinaus versuchen, der status der Einstellung für die Ausgabe von trace mit
und werfen Sie einen Blick auf die log4j-interne log-Meldungen werden auf der Konsole ausgegeben. Dies sollte Ihnen einen Einblick in das, was schief läuft. Hoffentlich gibt es einen klaren FEHLER-level-Meldung in dieser Ausgabe, die uns sagt, was das problem ist.
Gerade geschafft, das problem zu lösen 🙂
Zunächst setzte ich den Namen des package, enthält den GELF-appender, in der log4j2.xml Datei.
Dann bekam ich diese Fehlermeldung: "Dieser code sollte es nie in slf4j-api.jar"
Habe ich Maven in den ersten Platz zu bekommen, alle benötigten Pakete. So habe ich Maven und dieser gab mir den Hinweis, dass die importierten slf4j-api .java-Dateien, die dort nicht erwartet.
Wenn Sie laden Sie die offizielle SLF4J Verteilung achten Sie darauf, welche Dateien Sie importieren. In der ersten Ort, den ich importiert die java-Dateien aus dem Ordner "slf4j-api" - aber dieser Ordner enthält die "impl" - Ordner, die den Fehler verursacht hat, habe ich oben erwähnt.
Also habe ich importiert sl4j-api-1.7.7.jar das ist auch in der offiziellen SLF4J-Verteilung (diese jar-Datei enthält nicht die "impl"-Paket) und jetzt funktioniert es einwandfrei.
Hinweis: ich habe diese Nachricht beim starten des Programms: