Logging sätmlicher Vorgänge, wie am besten realisieren?

Status
Nicht offen für weitere Antworten.

dflasjjs

Bekanntes Mitglied
Hi,

ich möchte in meiner Applikation sone Art Historie einfügen, wo man nachvollziehen kann, wer, wann, was geändert hat. Dazu habe ich mir einfach eine Liste gebaut um die Sachen abzuspeichern.

Meine Frage ist nun, wie bekomme ich die Sachen in die Liste? Theoretisch könnte ich ja jede setter-Methode einen Eintrag dafür verpassen. Problem hier, ziemlich viel Schreibarbeit...

Alternativ könnte ich auch 1 allgemeine Methode schreiben, die ich dann einfach jedes mal bevor was geschrieben wird, aufrufe. Problem da ist natürlich, man darf es nicht vergessen.

Was schlagt ihr vor?
 

Sempah

Bekanntes Mitglied
Natürlich könntest du dies selbst implementieren oder auf ein Framework wie z.B. Log4J zurückgreifen um sämtliche Aktionen mitzuloggen um dann diese Logdatei als Historie anzuzeigen.
 

byte

Top Contributor
Ich schlage vor, es aspektorientiert zu lösen. Du schreibst die Logik des Anlegens eines History-Eintrags als Aspekt und hängst ihn deklarativ vor alle Methoden, die Du auf diese Weise loggen möchtest.

Setzt natürlich voraus, dass Du entsprechende Hilfsmittel integrierst, z.B. AspectJ oder das Spring Framework.

Alternative mit reinen Java Mitteln: Proxy Pattern! Du implementierst die History-Logik als InvocationHandler und erzeugst Dir damit Proxies für Deine Objekte.

Anleitung
 

ARadauer

Top Contributor
Natürlich könntest du dies selbst implementieren oder auf ein Framework wie z.B. Log4J zurückgreifen um sämtliche Aktionen mitzuloggen um dann diese Logdatei als Historie anzuzeigen.
log4j loggt auch nur das was man loggt.. und um das gehts ja... dass das zu viel schreib aufwand ist...

ich bin auch für aspectJ.. ist genau der anwendungsbereicht für den es erdacht wurde... funktionalitäten die mit der eigentlichen logik nix zu tun haben...
 

FArt

Top Contributor
AOP oder log4j... das ist nicht exklusiv!
Ich würde das entsprechend kombinieren. Der Vorteil von log4j ist immer noch die Laufzeitkonfiguration.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben