-
24.08.11 11:42 #1
- Registriert seit
- Mar 2011
- Beiträge
- 12
Guten Tag liebe Kollegen,
ich habe folgendes Problem:
Ich habe mich vor einigen Tagen durch die API des Apache Frameworks Log4J durchgeschlagen und habe auch einige Sachen ausprobiert um ein Logging in eine Art Blockschema darzustellen.
Das Logging bezieht sich auf ein Transfer einer Datei zum Finanzamt, wobei ich für jede zu transferierende XML-Datei einen eindeutigen "Log-Datensatz" haben möchte um diesen später in der GUI darstellen zu können. Dazu habe ich eine Klasse implementiert, die die einzelnen Pattern der Log aufnimmt.
Um das etwas genauer auf den Punkt zu bringen werde ich mal zeigen wie ich es realisiert haben möchte
Im Log soll es folgendermaßen aussehen:
Dabei ist zu beachten, dass eine XML-Datei mehrmals im Log stehen kann z.B. wenn der Transfer beim ersten mal Fehlgeschlagen ist ein erneuter Transfer versucht wird und ggf. dieser erfolgreich war.[Transfer=fref.xml]
(15 08 2011 13:37:43) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 13:40:30) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 13:41:01) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 13:59:39) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:00:13) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:26:07) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:26:37) ELSTER_ERROR - fehlercode - Fehlermeldung
[Ende]
[Transfer=xml.xml]
(15 08 2011 14:26:37) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:26:37) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:26:37) ELSTER_ERROR - fehlercode - Fehlermeldung
(15 08 2011 14:26:37) ELSTER_ERROR - fehlercode - Fehlermeldung
[Ende]
[Transfer=xml.xml]
(15 08 2011 15:26:15) ELSTER_OK - 0 - Transfer erfolgreich
[Ende]
In der GUI soll dies später so aussehen, dass es für jeden geloggten Transfer ein Klapp-Menü gibt, wo schließlich die detaillierten Fehlermeldungen der Datei angezeigt werden.
Ich hoffe ihr könnt mir bei dem Thema weiterhelfen.
Lg Ben.
-
24.08.11 12:16 #2
Hi und herzlich Willkommen bei Tutorials
,
was mich jetzt noch interessieren würde, wäre deine konkrete Frage und ob der Transferprozess ein Programmlauf ist, oder eben nur ein Teilprozess?
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 12:39 #3
- Registriert seit
- Mar 2011
- Beiträge
- 12
Ich würde sagen ein Programmlauf, da mehrere Methoden aufgerufen werden und die Rückgabewerte zurückgeliefert werden bzw. die Fehlermeldungen wenn eine Exception geworfen wird. Dann rufe ich eine Methode meiner Logger Klasse auf die sagt addLog(). Diese soll dann anschließend die Rückgabewerte und so weiter, wie oben dargestellt, in die Datei Loggen und in eine Liste packen um diese dann an die GUI zu pushen.
-
24.08.11 12:42 #4
Mh, nein, du hast meine Frage glaub ich mal falsch verstanden.
Also meine Frage war, ob der Programmablauf so aussieht...
1. Programmstart
2. Transfer der XML-Datei
3. Logeintrag
4. Programmende
... oder eben anders.
Es wäre auch nicht schlecht, wenn du deinen Code posten könntest, damit wir dir dann besser weiterhelfen können.Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 12:48 #5
- Registriert seit
- Mar 2011
- Beiträge
- 12
Achso. Sorry. Haha. Dann entscheide ich mich für Teilprozess.
-
24.08.11 12:52 #6
Ok, gut zu wissen. Aber drotzdem ohne Code und konkrete Frage können wir dir nicht weiterhelfen.
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 13:01 #7
- Registriert seit
- Mar 2011
- Beiträge
- 12
Eigentlich hat das weniger mit dem Code zutun.
Meine eigentliche frage ist: Gibt es eine Möglichkeit eine strukturierte Darstellung in einer Log mit Hilfe dieses Frameworks zu erstellen? Wichtig ist für mich die Eindeutigkeit der einzelnen Blöcke im oben beschriebenen Schema auch wenn ein Transfer einer Datei mehrmals vor kommt.
-
24.08.11 13:31 #8
Kla ist das möglich. Du kannst, wenn du in deine Logeinträge machst, doch einen String übergeben. Dann schreibst du in den String rein:
log.info("Transfer XML-File:"+file.getPath);
...
log.error("Transfer failed - "+errorcode+" - "+exception);
...
log.info("Transfer exit");Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 14:36 #9
- Registriert seit
- Mar 2011
- Beiträge
- 12
Achsoooooooo. Natürlich. Das habe ich anscheinend in der API übersehen ...
Nein mal ehrlich, das war mir schon vorher bewusst. Anscheinend wurde mein erster Beitrag nicht verstanden.
Ich möchte ein EINDEUTIGES Blockschema
Die Log-Datei soll nicht nur einfach ausgelesen werden und runtergerattert im Debug-Modus in der GUI angezeigt werden.[TRANSFER "xml.xml" - Datum(Begin des Transfers)]
...
Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
...
[ENDE]
Ich denke meine Oma würde das nicht verstehen bzw. Hätte keine Lust das alles durchzulesen.
In der GUI soll später jeder Transfer damit gekennzeichnet werden ob er Erfolgreich war oder nicht. Wenn erfolgreich, ein grünes Häckchen keine Fehlermeldungen. Wenn fehlgeschlagen rotes Kreuzchen, Liste von lesbaren und verständlichen Fehlermeldungen für den Ottonormalverbraucher.
Deshalb dieses Blockschema um eine Eindeutigkeit festzulegen.
Wenn nämlich die Log folgendermaßen aussehen würde:
Gäbe es keine Eindeutigkeit....
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
Datei - Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
...
-
24.08.11 15:00 #10SE Tutorials.de Gastzugang
Ich hab mal so ne andere blöde Frage : warum lässt du erst alles loggen und machst dir dann die Mühe dieses Log wieder so aus ein ander zu nehmen ?
Mach das doch einfacher :
Objekte erstellen die das XML spezifizieren , eine globale Statusvariable : noch zu senden / gesendet / senden fehlgeschlagen und einen Vector / List / sonst was um aufgetretene Fehlermeldungen darin zu speichern. Das würde auf jeden Fall das verarbeiten in der GUI deutlich vereinfachen als wenn du dir dann noch n Log-Parser zusammenbaust , damit auch Probleme hast und dann für eine eigentlich so einfache Lösung einen so riesen Umweg baust.
Oder kurz : Konzeptionsfehler
-
24.08.11 15:02 #11
Willst du das LogFile denn in die GUI laden, sprich einlesen und anzeigen?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 15:18 #12
- Registriert seit
- Mar 2011
- Beiträge
- 12
Das ist so nicht richtig. Komplett auseinander nehmen hatte ich auch nicht vor. Aber mir bleibt nichts anderes übrig auf die Datei zuzugreifen, aufgrund des Datums, das ich später in die Klasse "LogValues" übergebe. In der Klasse gibt es die Parameter Dateiname, Datum, LoggingTyp, Fehlercode, Fehlermeldung. Die Klasse "TransferLog" besitzt eine Methode addLog(dateiname, LoggingTyp, Fehlercode, Fehlermeldung). Diese fasst die Parameter zusammen und übergibt sie dem Appender der Logger-Klasse aus dem Apache Framework Log4J. Danach wird mit der Methode log(Priority priority, Object message) der Logger-KLasse des Log4J Frameworks geloggt. Danach muss ich den Eintrag aus der Datei lesen und das Datum heraus zu bekommen. Erst dann kann ich die Parameter in einer Instanz der Klasse "LogValues" übergeben um diese zu cachen, das heißt in eine Liste zusammenzufassen. Der Rückgabewert der Methode addLog(dateiname, LoggingTyp, Fehlercode, Fehlermeldung) aus der Klasse "TransferLog" ist eine Instanz von LogValues damit die GUI diese verarbeiten kann.Ich hab mal so ne andere blöde Frage : warum lässt du erst alles loggen und machst dir dann die Mühe dieses Log wieder so aus ein ander zu nehmen ?
ich hoffe es lässt sich jetzt klarer verstehen, wie weibliche Vornamen...
-
24.08.11 15:19 #13
- Registriert seit
- Mar 2011
- Beiträge
- 12
Bitte nächstes mal den Beitrag lesen. Danke.Willst du das LogFile denn in die GUI laden, sprich einlesen und anzeigen?
-
24.08.11 15:24 #14
Also ich kann dir sagen, das was du vorhast geht nicht!
Du kannst aber eine "Art" Start- und End-Tag bei deinen Logeinträgen setzen. Dann kannst du beim Parsen einfach vom Start- bis zum jeweiligen End-Tag lesen, diese in dein Object verfrachten und anschließend die nächsten lesen...Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
24.08.11 15:28 #15
- Registriert seit
- Mar 2011
- Beiträge
- 12
Ähnliche Themen
-
Log4J Logging über JMX Konfigurieren mit Spring
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 10.03.10, 10:12 -
Seltsames Verhalten beim Logging mit Log4J
Von Manuel Hegemann im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 13.05.09, 11:21 -
Log4j: Pfad zur log4j.xml explizit angeben - DOMConfigurator.configure()
Von Kryptaesthesie im Forum JavaAntworten: 8Letzter Beitrag: 13.02.09, 08:26 -
Logging mit log4j: Laufzeitfehler in Datei umleiten?
Von DarthShader im Forum JavaAntworten: 5Letzter Beitrag: 19.04.08, 23:18 -
Logging mit Log4j
Von WIK-Lars im Forum JavaAntworten: 1Letzter Beitrag: 14.12.06, 13:16



1Danke

Zitieren
Login





