PowerShell:
Логування

Як це зробити:

Ось керівництво щодо додавання базового логгінга до ваших сценаріїв:

# Створення простого повідомлення у лог
Write-Host "Інфо: Запуск процесу сценарію."

# Запис у файл
"Інфо: Це повідомлення записано у лог." | Out-File -Append myLog.log

# Використання вбудованої cmdlet для більш детального логгінга
Start-Transcript -Path "./detailedLog.log"
Write-Output "Попередження: Щось не зовсім вірно."
# ... ваш сценарій щось виконує
Stop-Transcript

# Вивід detailedLog.log
******************************
Запис початку роботи Windows PowerShell
Час початку: 20230324112347
Користувач: PShellGuru@example.com
Користувач з правами адміністратора: PShellGuru@example.com
Назва конфігурації: 
Машина: PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Програма-хост: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ID процесу: 2024
Версія PS: 7.1.2

Тепер у ваших логах є хронологія того, чим займався ваш код.

Поглиблений Захід:

Історично логгінг сипека скільки саме програмування. Це як бортовий журнал капітана, але для програмного забезпечення. У минулому це могли бути роздруківки або телетайпи; зараз мова йде про файли та розкішні системи управління логами.

Коли ви занурюєтеся в траншеї PowerShell, Write-Host - це швидко та нечисто, але воно просто виводить текст у консоль, не надто підходить для зберігання записів. Out-File дає вам простий спосіб закинути текст у файл, але для справжнього соку вам захочеться використовувати Start-Transcript та Stop-Transcript, які реєструють все - вхідні, вихідні дані, усе на світі. Альтернативи? Звичайно, якщо ви працюєте у великому підприємстві, ви могли б розглянути Реєстрацію Подій Windows або використання програмного забезпечення такого як Logstash, але для вашого щоденного сценарію залишайтеся з інструментами PowerShell. Що стосується реалізації, пам’ятайте, щоб логінг був розумним – занадто мало та він безглуздий, занадто багато та це білий шум.

Дивіться Також:

Перегляньте це, щоб узнати все про логгінг в PowerShell: