Pascom Client mehrfach starten und Logs auslesen

Auf dem Partner-Summit wurde sich gewünscht, einige der gezeigten Beispiel-Skripte im Forum zum nachlesen zur Verfügung zu stellen.

Die hier gezeigten Beispiele beziehen sich auf Windows und PowerShell.

Thema hier:

pascom Client mehrfach starten und Logs auslesen

Gerade wenn man als Partner für einen Kunden etwas testet, oder auch wenn man z. B. Aktionen erstellt und Debuggen möchte, ist es nützlich einerseits den Client mehrfach starten zu können, und auch Zugriff auf die Logs zu haben.

Userdir - Benutzerverzeichnis

Standardmäßig kann man sich pro Userdir nur einmal Anmelden, und auch nur ein Prozess gleichzeitig kann auf dieses Verzeichnis zugreifen. Standardmäßig liegen diese Dateien in folgenden Verzeichnissen:

  • Windows: ${env:APPDATA}\pascom Client
  • macOS: $HOME/Library/Application Support/pascom Client

Mithilfe des --userDir Parameters kann man dies übersteuern, und so mehrere Client Instanzen gleichzeitig starten:

$InstallationDirectory="${env:LOCALAPPDATA}\pascom Client\pascom Client.exe"
$UserDir="C:\Pfad\zum\userdir"

Start-Process -FilePath "$InstallationDirectory" -ArgumentList "--noAttach --userDir `"$UserDir`""

Logausgabe: --noAttach

Diese Parameter steuert unter Windows die Logausgabe. Standardmäßig werden, falls der Client aus einem Konsolenfenster gestartet wird, die Logs auf diesem Fenster ausgegeben. Ist dies nicht gewünscht, kann man die Ausgabe mit diesem Parameter unterdrücken

Logs auslesen: --logcat

Manchmal ist es hilfreich, die Logs nicht nur live in der Kommandozeile zu sehen, sondern diese auch nachträglich auswerten zu können. Der Client speichert diese in einer SQLite Datenbank mit dem Name log.db im Userdir ab. Mithilfe des --logcat Parameters kann man diese Logs auslesen und in Text umwandeln

Wird der Parameter ohne pfad angegeben, wird die log.db aus dem Standard-Userdir verwendet. Ansonsten wird die im Pfad angegeben Datei ausgewählt.

Unter Windows ist es nun Notwendig, eine Datei als Zwischenspeicher zu verwenden, siehe auch das folgende Beispielskript:

$TempFile = New-TemporaryFile
$InstallationDirectory="${env:LOCALAPPDATA}\pascom Client\pascom Client.exe"
$logDb="${env:APPDATA}\pascom Client\log.db"

Start-Process -RedirectStandardOutput "$TempFile" -Wait -FilePath "${env:LOCALAPPDATA}\pascom Client\pascom Client.exe" -ArgumentList "--noAttach --logcat `"$logDb`""

notepad $TempFile

A post was split to a new topic: PowerShell Skript für automatische Client Updates auf Terminal Servern