ChrisK
I'm new here

Logging im Modul auf dem Client

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

0 Kudos
6 Replies
hoebbel
Crownpeak employee

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 Smiley Wink

Viele Grüße

Holger

0 Kudos
felix_reinhold
Returning Responder

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

0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos