Konkurrierender Zugriff auf Log-Datei mit Log4J

Status
Nicht offen für weitere Antworten.
O

oltoko

Gast
Hi,

weis jemand ob es eine möglichkeit gibt mit mehreren Instanzen von einem Programm, das Log4J nutzt, in die gleiche Log-Datei zu schreiben, ohne das dabei Logs durch das konkurrierende speichern verloren gehen? Vllt hatte jemand schon das Problem, oder weiß aus zufall jemand ob ich die Möglichkeit besitzte in log4j sowas zu konfigurieren?

Danke im Voraus
 

FArt

Top Contributor
Gibt es meines Wissens noch nicht, aber eine Eigenimplementierung dürfte einfach sein: ein eigener Appender ist schnell geschrieben, die Schnittstelle ist recht trivial. Die Umsetzung mit dem java.nio package ist auch kein Hexenwerk... jetzt kommt es nur noch auf das Betriebsysstem an, ob es lockiing auf Files unterstützt... die meisten aktullen tun das aber...
 

Siassei

Bekanntes Mitglied
Wie sinnvoll eine derartige Implementation ist, ist fraglich? (Schöner Satz :) )
Log4J und alle mir bekannten Log-Systeme wurden für höchste Performance und Geschwindigkeit entworfen und gestaltet. Eine Zugriffskontrolle vermindert die Geschwindigkeit bei vielen Log-Anfragen sehr stark und ...

Viel Spaß bei der Entscheidung :D
 
G

Gast

Gast
wird man aber kaum drumherum kommen, wenn man "sicheres" logging braucht. so eklig es ist, der wrapper wird blockierend synchronisieren müssen.
 

Siassei

Bekanntes Mitglied
Gast hat gesagt.:
wird man aber kaum drumherum kommen, wenn man "sicheres" logging braucht. so eklig es ist, der wrapper wird blockierend synchronisieren müssen.
Kommt drauf an. Der OP erwähnte nicht, dass es sich um eine *.txt handeln muss. Wobei ich nicht den Sinn einer solchen Log-Strategie sehen kann. Vielleicht liegt es daran, dass ich Java nur als Hobby ansehe :wink:

Wie wär's mit einem Appender, der mittels JDBC oder ODBC auf eine DB zugreift? Hier erledigt die DB das Speichern und die App wird es kaum spüren. Man muss ja nicht gleich eine komplette DB im Hintergrund laufen lassen :) H2, MS Access, HSQL, ... gibt es doch auch und die Log-Daten sollten im nach hinein einfach auszulesen sein. Wer sagten den, dass zum lesen von Log-Dateien umbedingt ein Texteditor benutzt werden muss. Eine schöne Tabellenkalkulationliste (ich wollte nicht Exel sagen :D ) mit der ich sogar die Logdaten mit ein paar Klicks ordnen kann ist doch das schönste auf der Welt :D
 
G

Gast

Gast
kommt drauf an, welche aufgabe das logging erfüllen soll. das worst case szenario ist, dass die ganze vm absemmelt und die logs sind das einzige, was noch aufschluss über die ursache geben könnte. wenn die logs dann durch irgendeinen daemon asynchron in die db oder in ein file geschaufelt werden, könnten gerade die wichtigsten letzten bytes es nicht mehr ins log geschafft haben. nicht ohne grund verwenden viele logger nichteinmal nen buffer.
 

FArt

Top Contributor
Na ja, die Frage ist ja nicht ob Logging allgemein sinnvoll ist oder nicht, sondern ob wirklich verschiedene Instanzen in ein Logfile schreiben wollen / sollen.

Meine Meinung dazu: in der Regel unnötig.

Wenn ich zeitliche Vergleiche brauche (sehr selten, eher nie), dann geht das auch nur verlässlich mit Prozessen auf einer Maschine, und dann merge ich die Logfiles über den Timestamp... aber bisher reichte auch in einer Clusterumgebung das Logfile einse Prozesses für sich bzw. die Logfiles der Prozesse parallel...
 

oltoko

Mitglied
Hi,

erstmal danke für die vielen tollen Antworten!! Ich werde den Ansatz mit dem eigenen Appender, der ein "write lock" auf die Log-Datei legt jetzt mal verfolgen!! Ich werd ja dann sehen wieviel Zeit mich das tatsächlich kostet falls eine zweite Instanz auf die Sperre läuft und dann einfach mal kurz (oder auch länger) warten muss!!

Mfg oltoko
 

FArt

Top Contributor
Vielleicht ist es auch viel praktikabler das ganze mit einem Server zu realisieren, nicht zuletzt weil hier die Appender schon fertig sind...

SocketAppender, JMSAppender... oder alles in eine Datenbank... JDBCAppender...

Schau doch einfach mal bei log4j rein, was es da so alles gibt.
 

oltoko

Mitglied
FArt hat gesagt.:
Vielleicht ist es auch viel praktikabler das ganze mit einem Server zu realisieren, nicht zuletzt weil hier die Appender schon fertig sind...

SocketAppender, JMSAppender... oder alles in eine Datenbank... JDBCAppender...

Schau doch einfach mal bei log4j rein, was es da so alles gibt.


Das hab ich schon, leider ist das alles nicht gewünscht :wink: !! Ich hätte es auch lieber so gemacht, da z.B. auch die Lösung mit syslog (SyslogAppender) das ganze Problem gelöst hätte!! Jedoch bin ich leider nur die Exekutive und nicht die Legislative :D !!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Java Zugriff auf Netzwerklaufwerk Allgemeine Java-Themen 1
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
W Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
Tommy Nightmare HTTP Zugriff auf Internetseite im Loginbereich Allgemeine Java-Themen 5
H Zugriff auf PHP Allgemeine Java-Themen 4
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
M Kein Zugriff auf microSD Karten Allgemeine Java-Themen 4
T Zugriff auf Datenbank Allgemeine Java-Themen 1
J Zugriff auf IMAP GMail Konto scheitert. Allgemeine Java-Themen 2
P Frontend- Zugriff auf WS- Backend Allgemeine Java-Themen 0
U Zugriff auf Datei sperren Allgemeine Java-Themen 5
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
C Zugriff auf Event felder Allgemeine Java-Themen 0
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
F Zugriff Verweigert bei Kopieroperation? Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
S Dynamischer Zugriff Allgemeine Java-Themen 4
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
V Zugriff auf den Objekterzeuger? Allgemeine Java-Themen 4
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
J XML Element Zugriff Allgemeine Java-Themen 4
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
H Vererbung Abgeleitete Klassen und Zugriff Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
S Zugriff auf innere Klasse Allgemeine Java-Themen 3
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
J Zugriff auf Dateien auf einem shared Folder? Allgemeine Java-Themen 3
H Zugriff auf VBA in Java Allgemeine Java-Themen 2
Haave Audio Device Unavailable: Kein gleichzeitiger Zugriff auf Soundsystem möglich Allgemeine Java-Themen 7
G Letzter Zugriff auf Datei Allgemeine Java-Themen 5
C java.io.FileNotFoundException: (Zugriff verweigert) Allgemeine Java-Themen 14
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
X Zugriff auf ComboBoxen in Hauptklasse von zweiter Klasse aus Allgemeine Java-Themen 8
J Zugriff auf gemeinsame Funktionen Allgemeine Java-Themen 4
Airwolf89 Zugriff auf ArrayList<ArrayList> Allgemeine Java-Themen 3
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
T Zugriff zwischen Klassen für repaint Allgemeine Java-Themen 7
N Zugriff auf eine Referenzvar. Allgemeine Java-Themen 3
S Zugriff auf Klasse Allgemeine Java-Themen 4
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
S Zugriff auf einzelne Bildpunkte Allgemeine Java-Themen 3
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
P RegeEx-Problem: Zugriff auf group Allgemeine Java-Themen 2
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
I Zugriff auf Daten Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
D Zugriff auf Windows Dienste Allgemeine Java-Themen 7
G Zugriff auf Memberclasses einer geladenen Class-Datei Allgemeine Java-Themen 2
I Gleichzeitiger zugriff auf ein Long über Threads Allgemeine Java-Themen 2
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
M "Unzulässiger Zugriff auf einen Speicherbereich" Allgemeine Java-Themen 7
A Zugriff auf Parallelport nur über Eclipse nicht über .jar ! Allgemeine Java-Themen 12
G Zugriff auf ein sama share Allgemeine Java-Themen 8
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
J Endlosschleife durch wechselseitigen Zugriff zweier Klassen? Allgemeine Java-Themen 2
F Zugriff auf lokalen Rechner wer weiss Rat ? Allgemeine Java-Themen 16
G Zugriff auf Dateien in jar-Datei Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben