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