Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir haben ein Modul, das über einen Task im Freigabe-Workflow angestoßen wird, d.h. dieses Modul wird lokal auf dem Client-Rechner des jeweiligen Redakteurs ausgeführt.
Dies hat zur Folge, dass Log-Ausgaben aus dem Modul (mittels der regulären Methoden ScriptContext.logInfo, ScriptContext.logWarning etc.) zwar in der JAVA-Konsole ausgegeben, nicht jedoch in eine Log-Datei auf dem FS Server geschrieben werden.
Das reicht uns nicht, da wir nachvollziehen können müssen, ob und u.U. was bei einer Ausführung eines Redakteurs schiefgegangen ist.
Gibt es die Möglichkeit, die Logs aus dem Client-Modul irgendwie in eine Datei auf dem Server zu schreiben und dort zu speichern - entweder in die fs-server.log oder noch besser in eine separate Datei?
Wenn ja, wären wir über Hilfe sehr dankbar, wie dies konfiguriert werden muss.
Viele Grüße
Chris
Hallo Chris,
hier zwei allgemeine Hinweise (nur zur Sicherheit, falls Dir diese noch nicht bekannt sind):
Fehler (LogLevel ERROR) werden vom Client auf den Server übertragen und dort in der Datei <FirstSpiritROOT>/log/fs-clients.log gespeichert.
Vielleicht hilft das ja schon, um herauszufinden, was bei der Ausführung des Workflows schief gegangen ist.
Außerdem werden die Logausgaben des SiteArchitect im entsprechenden Logverzeichnis (Standard: <UserHome>/.firstspirit_<FirstSpirit Version>/logs/) gespeichert, wobei diese automatisch aufgeräumt werden, wenn das Verzeichnis zuviele Einträge hat (ich glaube 100) oder zu groß wird (ich glaube 5MB). Der Redakteur könnte das entsprechende Logfile also auch nachträglich übermitteln.
Die eigentliche Frage kann ich leider nicht beantworten. Aber vielleicht ist das ja auch gar nicht notwendig
Viele Grüße
Holger
Hi Chris,
da Logausgaben mit Severity ERROR wie Holger schon angemerkt hat durchgereicht werden gibt es ggf. auch eine konfigurative Lösung, aber als Alternative:
Ich hatte bei sowas mal einen LoggingService erstellt. Das Logging habe ich modulweit einheitlich über eine eigene Klasse gemacht - diese hat das Standard FirstSpirit Logging ausgeführt und die Meldung an den LoggingService weitergereicht. Der hat genau das gleiche (aber eben auf dem Server) gemacht. Würde aber empfehlen entweder die Übergabe der Logausgaben bereits clientseitig zu beschränken (also eine Loggingconfig, die angibt welche Packages weitergereicht werden) oder eben eine angepasste Logging-Config auf dem Server, damit nicht alles ausgegeben wird.
Viele Grüße
Felix
Hallo zusammen,
schonmal danke für die Antworten.
Klar, eine Lösung wie die von Felix vorgeschlagene wäre in einem 2. Schritt noch schöner, aber zunächst wäre uns schon geholfen, wenn zumindest die Log-Ausgaben mit Log-Level ERROR weitergereicht würden.
Ich habe nun allerdings in den vergangenen Tagen einige derartige Logs provoziert - auf dem Server bzw. in der dortigen fs-clients.log landen auch vereinzelte Logs, jedoch kein einziger Eintrag aus unserem Modul...
Haben wir beim Logging etwas falsch konfiguriert (mWn verwenden wir die Standard-Konfiguration)?
Hier unsere Konfiguration:
log4j.rootCategory=INFO, fs
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.apache=WARN
log4j.logger.org.apache.log4j.jmx=ERROR
log4j.logger.de.espirit.firstspirit.server.ExecutionManagerImpl=INFO
log4j.logger.httpclient.wire=INFO
log4j.logger.org.apache.commons.httpclient=INFO
log4j.logger.org.apache.http=INFO
log4j.logger.org.apache.http.impl.execchain.RetryExec=WARN
# disable audit logging by default
log4j.logger.de.espirit.firstspirit.logging.audit=OFF
# fs
log4j.appender.fs=de.espirit.firstspirit.server.logging.FSAppender
log4j.appender.fs.consoleLogging=false
log4j.appender.fs.plainLogging=true
# dated logging is used by server monitoring for log file display
log4j.appender.fs.datedLogging=true
log4j.appender.fs.maxFileSize=5MB
log4j.appender.fs.buffer=8192
log4j.appender.fs.flushCycle=10
Danke für Hilfe oder sollte ich mich mit diesem Thema an den Technical Support wenden?
Viele Grüße
Chris
Hallo Chris,
möglicherweise ist der Technical Support der schnellste Weg.
Aber mal eine dumme Frage: Wie loggst du im Modul?
Beste Grüße
Stefan
Hallo Stefan,
wie in meiner Frage geschrieben, wird das Logging über die Methoden ScriptContext.logInfo, ScriptContext.logWarning und ScriptContext.logError aus dem Paket de.espirit.firstspirit.access gemacht.
So wie ich die Antwort von Holger Höbbel verstanden habe, müssten doch dann diejenigen Logs, die über die Methode ScriptContext.logError geschrieben werden, in der fs-clients.log auftauchen (falls die Logging-Konfiguration korrekt ist)!?
Viele Grüße
Christoph
Hallo Christoph,
Danke. Ich schrieb ja, dumme Frage. Ich hätte auch ordentlich lesen können.
Dann sehe ich so auf Anhieb auch keinen Grund, weshalb das nicht funktionieren sollte. Als Referenzklasse für die Logging-Konfiguration wird dort die interne Klasse des Kontexts genutzt, für die der Modus INFO gelten sollte. Merkwürdig.
Beste Grüße
Stefan