tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
22
ZUGRIFFE
659
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ben Letzel Ben Letzel ist offline Mitglied
    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:

    [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]
    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.

    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.
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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ß

    Fabio
     
    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.

  3. #3
    Ben Letzel Ben Letzel ist offline Mitglied
    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.
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.
    Ben Letzel bedankt sich. 
    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.

  5. #5
    Ben Letzel Ben Letzel ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    Achso. Sorry. Haha. Dann entscheide ich mich für Teilprozess.
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  7. #7
    Ben Letzel Ben Letzel ist offline Mitglied
    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.
     

  8. #8
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  9. #9
    Ben Letzel Ben Letzel ist offline Mitglied
    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

    [TRANSFER "xml.xml" - Datum(Begin des Transfers)]
    ...
    Datum - LoggingTyp (z.B. Error usw.) - ErrorCode - Errormsg
    ...
    [ENDE]
    Die Log-Datei soll nicht nur einfach ausgelesen werden und runtergerattert im Debug-Modus in der GUI angezeigt werden.
    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:

    ...
    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
    ...
    Gäbe es keine Eindeutigkeit.
     

  10. #10
    SE 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
     

  11. #11
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  12. #12
    Ben Letzel Ben Letzel ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    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 ?
    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 hoffe es lässt sich jetzt klarer verstehen, wie weibliche Vornamen...
     

  13. #13
    Ben Letzel Ben Letzel ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    Willst du das LogFile denn in die GUI laden, sprich einlesen und anzeigen?
    Bitte nächstes mal den Beitrag lesen. Danke.
     

  14. #14
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  15. #15
    Ben Letzel Ben Letzel ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    12
    Zitat Zitat von Fabio Hellmann Beitrag anzeigen
    Also ich kann dir sagen, das was du vorhast geht nicht!
    Bitte ?!! Wenn ja. Was nicht konkret, bitte... -.-*
    Du hast den ersten Satz deiner Signatur bestätigt!
     

Ähnliche Themen

  1. Log4J Logging über JMX Konfigurieren mit Spring
    Von Thomas Darimont im Forum Java
    Antworten: 0
    Letzter Beitrag: 10.03.10, 10:12
  2. Seltsames Verhalten beim Logging mit Log4J
    Von Manuel Hegemann im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 13.05.09, 11:21
  3. Antworten: 8
    Letzter Beitrag: 13.02.09, 08:26
  4. Antworten: 5
    Letzter Beitrag: 19.04.08, 23:18
  5. Logging mit Log4j
    Von WIK-Lars im Forum Java
    Antworten: 1
    Letzter Beitrag: 14.12.06, 13:16

Stichworte