Univention Bugzilla – Bug 22552
Univention Debug: Init sollte den File-Deskriptor zurückgeben
Last modified: 2019-05-22 11:59:07 CEST
univention.debug.init öffnet die Log-Datei und in den Python-Bindings kommt man nicht an den FD dazu. Es wäre gut, wenn init den Deskriptor zurückgibt. dann könnte ein Dienst, der alle Desriptoren schließt den einen auslassen.
Created attachment 3280 [details] init returns file descriptor to open logfile
Eine Version mit dem Patch ist jetzt gebaut
In debug.h habe ich noch ein "#include <stdio.h>" hinzugfügt, da FILE ansonsten unbekannt war: gcc -g -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/db -DWITH_DB48 -c -o cache_entry.o cache_entry.c In file included from cache_entry.c:38: /usr/include/univention/debug.h:109: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
Die init-Funktion gibt den Descriptor zurück. ChangeLog hinzugefügt
OK #include <univention/debug.h> #include <stdio.h> int main(void) { FILE *fp; char *logfile = "/tmp/debugtest.log"; fp = univention_debug_init(logfile, UV_DEBUG_FLUSH, UV_DEBUG_FUNCTION); univention_debug(UV_DEBUG_POLICY, UV_DEBUG_ERROR, "error"); fprintf(fp, "Testing...\n"); univention_debug_exit(); return 0; } -> more /tmp/debugtest.log 29.09.11 01:18:32.648 DEBUG_INIT 29.09.11 01:18:32.649 POLICY ( ERROR ) : error Testing... 29.09.11 01:18:32.649 DEBUG_EXIT import univention.debug fp = univention.debug.init('/tmp/aaa.log', 1, 1) univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'error') fp.write("Testing...\n") fp.close() univention.debug.exit() -> more /tmp/aaa.log 29.09.11 01:20:53.393 DEBUG_INIT 29.09.11 01:20:53.393 ADMIN ( ERROR ) : error Testing... 29.09.11 01:20:53.394 DEBUG_EXIT Changelog Eintrag vorhanden.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"