PowerShell:
การบันทึกล็อก

วิธีการ:

นี่คือข้อมูลพื้นฐานในการเพิ่มการบันทึกแบบพื้นฐานลงในสคริปต์ของคุณ:

# การสร้างข้อความบันทึกง่ายๆ
Write-Host "Info: เริ่มกระบวนการสคริปต์."

# การเขียนลงไฟล์
"Info: นี่คือข้อความที่ถูกบันทึก." | Out-File -Append myLog.log

# การใช้ cmdlet ตัวในเพื่อบันทึกข้อมูลแบบละเอียด
Start-Transcript -Path "./detailedLog.log"
Write-Output "Warning: บางอย่างไม่ถูกต้อง."
# ... สคริปต์ของคุณทำงาน
Stop-Transcript

# ผลลัพธ์ของ detailedLog.log
******************************
Windows PowerShell transcript start
Start time: 20230324112347
Username  : PShellGuru@example.com
RunAs User: PShellGuru@example.com
Configuration Name: 
Machine  : PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process ID: 2024
PS Version: 7.1.2

ตอนนี้, ในบันทึกของคุณ, มีการบันทึกแบบเล่นๆ ของสิ่งที่โค้ดของคุณได้ทำไป.

การศึกษาลึก:

ตามประวัติศาสตร์, การบันทึกเก่าแก่เท่ากับการเขียนโปรแกรมเอง มันเหมือนกับบันทึกการเดินเรือแต่สำหรับซอฟต์แวร์ ในอดีต, อาจจะเป็นการพิมพ์ออกมาหรือเครื่องพิมพ์โทรเลข; ตอนนี้มันกลายเป็นเรื่องเกี่ยวกับไฟล์และระบบการจัดการบันทึกข้อมูลที่สวยงาม

เมื่อคุณกำลังอยู่ในแนวรบแห่ง PowerShell, Write-Host รวดเร็วและสกปรก, แต่มันเพียงแค่ส่งข้อความออกไปยังคอนโซล, ไม่ดีสำหรับการเก็บบันทึก Out-File ให้คุณวิธีง่ายๆ ในการส่งข้อความเข้าไฟล์, แต่สำหรับน้ำยาที่แท้จริง, คุณต้องการ Start-Transcript และ Stop-Transcript ซึ่งบันทึกทุกอย่าง—การป้อนข้อมูล, ผลลัพธ์, จริงๆ ทั้งหมด

ทางเลือก? แน่นอน, หากคุณกำลังทำงานระดับองค์กร, คุณอาจดูที่ Windows Event Log หรือใช้ซอฟต์แวร์เช่น Logstash, แต่สำหรับสคริปต์ประจำวันของคุณ, ให้ยึดติดกับเครื่องมือของ PowerShell สำหรับการนำไปใช้, จำไว้ว่าต้องบันทึกอย่างฉลาด - น้อยเกินไปและมันจะไม่มีประโยชน์, มากเกินไปและมันจะเป็นเพียงเสียงรบกวน

ดูเพิ่มเติม:

ดูสิ่งเหล่านี้เพื่อเข้าใจเรื่องการบันทึกใน PowerShell ทั้งหมด: