PowerShell:
Registrazione delle Attività (Logging)
Come fare:
Ecco le informazioni di base per aggiungere un po’ di logging semplice nei tuoi script:
# Creazione di un semplice messaggio di log
Write-Host "Info: Inizio del processo dello script."
# Scrittura su file
"Info: Questo è un messaggio di log." | Out-File -Append myLog.log
# Utilizzo del cmdlet integrato per un logging più dettagliato
Start-Transcript -Path "./detailedLog.log"
Write-Output "Attenzione: Qualcosa non quadra."
# ... il tuo script fa cose
Stop-Transcript
# Output di detailedLog.log
******************************
Trascrizione di Windows PowerShell inizio
Ora di inizio: 20230324112347
Username : PShellGuru@example.com
Utente esecutore: PShellGuru@example.com
Nome configurazione:
Macchina : PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Applicazione host: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ID processo: 2024
Versione PS: 7.1.2
Ora, nei tuoi log, c’è una descrizione dettagliata di ciò che il tuo codice ha fatto.
Approfondimento:
Storicamente, il logging è vecchio quanto la programmazione stessa. È come il diario di bordo di un capitano, ma per il software. In passato, potevano essere stampate o macchine telescriventi; ora si tratta tutto di file e di sofisticati sistemi di gestione dei log.
Quando sei immerso nelle trincee di PowerShell, Write-Host
è rapido e sporco, ma si limita a buttare testo nella console, non ideale per tenere registrazioni. Out-File
ti fornisce un modo semplice per gettare testo in un file, ma per la vera sostanza, vorrai usare Start-Transcript
e Stop-Transcript
che registrano tutto – input, output, l’intero processo.
Alternative? Certo, se stai operando in un’impresa, potresti considerare il registro eventi di Windows o l’uso di software come Logstash, ma per gli script quotidiani, aderisci agli strumenti di PowerShell. Per quanto riguarda l’implementazione, ricorda di fare un logging intelligente – troppo poco ed è inutile, troppo e diventa solo rumore di fondo.
Vedi anche:
Consulta questi per avere una panoramica completa sul logging in PowerShell: