Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: platzebo am 27.11.14 - 13:28:07
-
Hallo,
ich werkel jetzt schon eine weile rum - finde aber keine Lösung.
Folgendes Problem:
Ich baue für eine Anwendung Debugcode ein, der mittels Printbefehlen in die lokale log.nsf schreibt
25.11.2014 13:03:07 Agent druckt: ...
25.11.2014 13:03:07 Agent druckt: ...
25.11.2014 13:03:08 Agent druckt: ...
25.11.2014 13:03:08 Agent druckt: ...
soweit so gut.
Am Ende von dem Agent wird ein Dokument, das im Backend erstellt wurde mit editDocument dem User präsentiert.
Ab jetzt läuft der Code im Postopen der Maske weiter und die Printbefehle gehen nur mehr auf die Statuszeile und nicht mehr in die LogDB. Bei vielen Debugzeilen ist es dann so, dass nicht mehr alles in der Statuszeile zu sehen ist.
Gibt es eine Möglichkeit in die lokale log.nsf aus einem Maskenevent heraus in die lognsf analog einem Agent zu printen/protokollieren? Mit der Noteslog-Klasse hab ich es nicht geschafft.
Vielen Dank für die Ideen
Ligrü mike
-
Loggen in die log.nsf ist eine dumme idee...
Erstens werden Dich Server- Admins hassen dafür, dass Du Ihre Serverlogs zumüllst.
Zweitens ist es für Dich fast unmöglich an die Logs dranzukommen (ohne direkten Zugriff auf den Client des Benutzers)
Drittens findest Du doch nie ALLE zusammengehörigen Log- Einträge EINER Aktion, die z.B. 20x aufgerufen wurde.
Benutze entweder die NotesLog- Klasse (mit "OpenMailLog" oder "OpenDatabaseLog" mit einer eigenen Datenbank (auf Basis der AgentLog.nsf) oder "OpenFileLog"),
oder schreibe eine eigene Logging- Routine. Alles andere ist Murks.
-
Servus Tode,
danke für die Tips - sie beantworten aber nicht meine Frage.
In der Regel geb ich Dir recht - nur in meinem Fall würde es für mich Sinn machen.
Erstens habe ich Remotezugriff auf alle meine Clients und zweitens wird das Debuglogging nur via einem notes.ini-Parameter im Anlassfall aktiviert.
Ich hab eine Anwendung die aus einer zweistelligen Anzahl an Templates besteht.
Darin läuft eine Stafette aus einer Aktion und mehreren Agents ab, die in unterschiedlichen Templates laufen bis hin zum Dokument für den User, was ebenfalls in einer weiteren DB erstellt wird.
Somit ist es relativ schwierig ein gemeinsames Logdokument zu erstellen.
Ich will das Log im Notes haben - somit müsste ich eine eigene Logdb ausrollen, was bei einigen tausend Benutzern nicht wirklich super ist.
Aber vielen Dank für Deine Mühen :)
-
Ich glaube nicht, daß Du da mit Print eine Lösung finden wirst. Die Ausgabe von Print hängt vom Kontext ab, in dem das Script ausgeführt wird.
-
In dem Fall wird u.U. der Parameter "LogStatusBar=1" in der notes.ini helfen können: Dann werden die Prints in die Statusbar auch in die log.nsf geschrieben...
Oder man verwendet die C-API: Da gibt es die "LogEventText"- Methode, um ins Log zu schreiben. Aber APi- Calls sind natürlich nochmal ne ganz andere Geschichte...
Einen anderen Weg kenne ich nicht.
-
Hallo Tode,
genau das hab ich gesucht.
Klappt prima.
Vielen Dank und noch einen schönen Tag
Ligrü
Mike
btw: Gibt's da eine Doku bei der IBM zu den verfügbaren ini-Parametern und deren Auswirkung?
-
hier der erste Link (http://lmgtfy.com/?q=notes.ini+parameters)
-
Danke - das hätte ich davor probiert. Es kommt aber immer darauf an, wie man eine Frage stellt.
Dein zielführendes Ergebnis war bei meiner Suche nicht dabei :)
http://www-10.lotus.com/ldd/dominowiki.nsf/xpViewCategories.xsp?lookupName=Notes.ini%20File (http://www-10.lotus.com/ldd/dominowiki.nsf/xpViewCategories.xsp?lookupName=Notes.ini%20File)
Hast ein Bier beim EC15 gut - falls Du dort bist
-
Das habe ich vor.... Habe bisher nur noch kein gutes Thema gefunden, bzw. das Thema noch nicht "ausgearbeitet", über das ich Referieren will...