Eine gute Datenbank-log-appender für Java?
An meinem Arbeitsplatz, wir schrieben eine custom-log4j-appender schreibt log-Meldungen an die Datenbank (verwendet einen dedizierten thread asynchron, so dass keine Leistungseinbußen).
Ich bevorzuge es, viel über das schreiben auf log-Dateien - eine Datenbank-basierte Protokoll ist viel einfacher abzufragen und zu analysieren.
Gibt es eine open-source-Lösung, die diese (für log4j speziell, oder alle anderen java-Logger)?
Einige Dinge, die in unserer Appen hat, und ich möchte, um zu sehen, in eine alternative:
- Protokolle Ausnahmen (duh!)
- Datenbank schreibt, sind von einem separaten thread/pool
Unserer Appen unterstützt die folgenden Spalten, und ich möchte sehen, alle von Ihnen in was immer für eine Lösung wir finden.
- LogId
- Zeit
- Nachricht
- stacktrace
- Prozess-id
- thread-id
- Maschine name
- Komponente
- Level (debug/info/warn/...)
- ThreadName
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es auch eine DBAppender Klasse von log4j (log4j erfordert einen bestimmten Satz von Tabellen zu protokollieren mit dieser appender).
http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/db/DBAppender.html
Gibt es eine aktualisierte non-Apache jdbc-logger zur Verfügung hier können Sie auch probieren will:
http://www.dankomannhaupt.de/projects/index.html
Einfach nur neugierig, wäre es nicht zu stark auf die performance einer Anwendung, die das hosting so appender? Anmeldung direkt in der relationalen Datenbank ist ziemlich teuer sogar, wenn man es asynchron.
Brauchen Sie nicht eine benutzerdefinierte appender für LOG4J zu schreiben, die auf Datenbanken. Sie können JDBCAppender Bundle mit Apache-Verteilung.
Laut APACHE-Dokumentation dieser API ersetzt werden könnte in der Zukunft. Aber für jetzt verwenden wir es und es funktioniert sehr gut.