Moin, On Monday 06 February 2006 21:15, M. Dietrich wrote: > On Mon, Feb 06, 2006 at 05:53:45PM +0100, Christian Stimming wrote: [...] > nein ich mein das log, das auf stderr geschrieben wird. die callbacks > sind ja tatsaechlich benutzeraktionen. die habe ich natuerlich schon > aufgefangen. [...] AqBanking verwendet den Logging-Mechanismus von Gwenhywfar. Die Arbeitsweise ist in etwa so: Fuer jede Bibliothek/jeden Teil kann man eine eigene Logdomain anlegen. Das ist sozusagen ein bestimmter Kontext, in dem gelogged werden soll (enthaelt Logziel [wie Datei, Konsole] und Loglevel).
Gwenhywfar und AqBanking verwenden zum Beispiel diese Loglevel: GWEN_LOGDOMAIN (Ausgaben von Gwen) AQBANKING_LOGDOMAIN (Ausgaben von AqBanking) AQHBCI_LOGDOMAIN (Ausgaben von AqHBCI) und so weiter. Ausserdem gibt es noch die Logdomain 0 (wird eigentlich nur in Anwendungen verwendet, z.B. in QBankManager). Man kann nun zu Beginn seiner Anwendung GWEN_Logger_Open() fuer die verschiedenen LogDomains aufrufen (AqBanking macht sowas) und dabei festlegen, wie und wohin gelogged werden soll. Man kann aber auch mit GWEN_Logger_SetLogFunction() eine eigene Log-Funktion festlegen, die dann z.B. die Logzeilen im Speicher haelt (oder was man auch immer damit machen will). Dies ist aber noch nicht gut getestet. [...] > > > das zweite problem ist, dass ich nicht gefunden habe, wie ein > > > 'job' abgebrochen werden kann. gibt es dazu eine moeglichkeit? > > > > Es gibt einen "progress"-callback, der bei gewünschtem Abbruch dann was > > anderes zurückgibt als sonst. Auch hier haben die python-bindings IMHO > > schon längst ihren eigenen callback mitgebracht, den du gleich benutzen > > können müsstest. [...] Was meinst Du denn mit "abbrechen"? Waehrend der Job ausgefuehrt wird? Das ist nur indirekt moeglich, denn durch Aufruf der Funktion AB_Banking_ExecuteQueue() hast Du ja erst mal bis zur Rueckkehr aus der Funktion keine Kontrolle (es ist halt eine Funktion). Der Benutzer kann in Q/KBanking allerdings eine Aktion abbrechen, indem er auf den entsprechenden Button im Fortschritts-Fenster klickt. Dies bewirkt, dass der naechste Aufruf von AB_Banking_ProgressAdvance() oder einer der anderen Progress-Funktionen den Fehlercode AB_ERROR_USER_ABORT zurueckliefert, auf den alle Aufrufer mit Abbruch reagieren muessen. Die Funktion AB_Banking_ProgressAdvance() wird aus der Funktion AB_Banking_ExecuteQueue() haeufig aufgerufen (immer dann, wenn auf etwas gewartet werden muss, wie zum Beispiel die Antwort des Bankservers etc), so dass der Benutzer jeweils zeitnah einen Abbruch erzeugen kann. Das muss in der API-Doc noch besser dargestellt werden. Grundsaetzlich sollte man aber ueberall dort, wo ein Fehlercode zurueckgegeben wird von AqBanking, auf diesen speziellen Code getestet werden, da der Wille des Benutzers immer Vorrang vor anderen Fehlercodes haben soll. Gruss Martin -- "Things are only impossible until they're not" AqBanking - http://www.aquamaniac.de/aqbanking/ LibChipcard - http://www.libchipcard.de/ ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642 _______________________________________________ Aqbanking-devel mailing list Aqbanking-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aqbanking-devel