Logging

Ohne belastbare Logs wird Paketierung schnell zu Ratearbeit.

Diese Seite beschreibt, welche Logs Pflicht sind, wie sie gesammelt werden und wie man den ersten echten Fehler von Folgefehlern trennt.

Warum Logging?

Weil Rueckgabecodes allein nicht erklaeren, welcher Unterprozess scheiterte, welche Parameter liefen und ob ein Neustart ursaechtlich war.

Was ist Pflicht?

MSI: /L*v, Inno: /LOG, PSADT: Toolkit-Log, dazu Wrapper-Logs mit Startzeit, Host, Benutzerkontext und Rueckgabecode.

Wie liest man Logs?

Nicht auf den letzten Fehler springen, sondern den ersten belastbaren Bruchpunkt suchen und Prozessketten sauber korrelieren.

Typischer Denkfehler

Bei MSI nur nach "Return value 3" zu suchen, ohne die Zeilen direkt davor und den aufrufenden Kontext zu lesen.

Eigene Loggingfunktionen

Wenn du nicht nur Hersteller- oder Toolkit-Logs lesen willst, sondern saubere eigene Logeintraege fuer Deploymentskripte schreiben moechtest, lohnt sich eine kleine robuste Loggingbasis in PowerShell.

Artikel lesen

Warum das sinnvoll ist

Eigene Logs helfen besonders bei Prechecks, Detection, Wrappern und Nacharbeiten, die im Herstellerlog gar nicht oder nur indirekt sichtbar sind.

CMTrace-kompatible Logs

Ein eigenes Log wird noch nuetzlicher, wenn das Format sauber strukturiert und fuer Logviewer gut lesbar aufgebaut ist.

Artikel lesen

Rotation und LogLevel

Wenn dieselbe Funktion dauerhaft in Deployments und Detection laeuft, solltest du ueber Dateirotation und zusaetzliche LogLevel nachdenken.

Artikel lesen
PowerShell
Start-Process msiexec.exe -ArgumentList '/i app.msi /qn /L*v c:\logs\app.log' -Wait
Get-Content 'c:\logs\app.log' -Tail 80