PowerShell:
Журналирование
Как:
Вот короткое руководство по добавлению базового логирования в ваши скрипты:
# Создание простого сообщения в лог
Write-Host "Инфо: Начало процесса скрипта."
# Запись в файл
"Инфо: Это сообщение залогировано." | Out-File -Append myLog.log
# Использование встроенного cmdlet для более детализированного логирования
Start-Transcript -Path "./detailedLog.log"
Write-Output "Предупреждение: Что-то не так."
# ... ваш скрипт что-то делает
Stop-Transcript
# Вывод detailedLog.log
******************************
Запись транскрипции 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: