2012-06-07 2 views
1

서버 설치를위한 큰 스크립트를 작성 중이며 완전히 자동으로하고 싶지만 개발자가 고장난 경우이를 고칠 수 있기를 바랍니다. 이렇게하려면 Write-Output, Write-Debug, Write-Verbose, Write-Warning을 사용하는 것을 상상해보십시오.큰 Powershell 스크립트 로깅

이러한 모든 쓰기를 .txt 파일에 쓰고 (타임 스탬프 처리) 어떻게 얻습니까? 또한 보통 Write-Error는 대개 빨간색으로 작성되지만 .txt 파일에는 색이 없다는 것을 알고 있습니다. 어쨌든 디버그, 경고 등과 같이 모든 글자에 접두어를 붙이는 등 어쨌든 구별 할 수있는 방법이 있습니까?

답변

5

아, 어서 그래서 이러한 단점을 해결하기 위해이 쓰기 로그인 기능을 만들었습니다! 왜 운영 체제 전체에 정보를 분산시키고 생산 담당 직원이 핀셋으로 수집해야하는 텍스트 파일 구식 로깅을 사용합니까?

PowerShell은 .NET에서 작동하므로 Even Tracing for Windows (ETW)을 사용하거나 시스템 로그를 사용할 수 있습니다.

모든 스크립트에 대해 하나의 PowerShell 로그를 만들어 사용할 수 있습니다. 프로덕션 담당 담당자에게 실행 (정보) 및 오류에 대한 세부 정보 (양호한 예외 처리와 함께 조정)를 게시 할 수 있습니다. (이 등 DNS에 대한 로그를 존재하는) 당신은

여기 예를 들어 하나 스크립트의 로그를 전용 수 (PowerShell을 V2 그것은 자신의 cmdlet을의있다) :

# List of logs 
Get-EventLog -list 

# Creating your own log 
New-EventLog -LogName "SlxScripting" -Source "MaSource" 

# List of logs 
Get-EventLog -list 

# Writting in your own log 
Write-EventLog -LogName "SlxScripting" -EventId 12 ` 
       -Message "Mon Message" 
       -Source "MaSource" -EntryType Warning 

# Reading (consuming) in your own log 
Get-EventLog -LogName "SlxScripting" 

# Suppressing your log (if needed) 
Remove-EventLog -LogName "SlxScripting" 
+0

이것은 일괄 업그레이드 (bulkier syntax 제외)와 같이 보입니다. 이제 ETW에 대한 귀하의 링크와 관련하여 PowerShell에서이를 사용할 수 있습니까? –

+0

나는 그것이 될 수 있다고 생각한다. 나는 내 네이티브 (Win32) 프로그램의 일부에서 이것을 사용하여 realease 버전 (생산 중)에서 일종의 디버그를 켤 수 있도록 코드를 계측합니다. PowerShell 스크립트가 정말로 필요로하는지 확신하지 못합니다. – JPBlanc

+0

그래, 나는 이벤트에 뭔가 쓸모없는 것을 위해 유용 할 것 같아. –

3

Write-(Error|Debug|Verbose) 파일 쓰기가 지원되지 않습니다.

http://poshcode.org/3270

몇 가지 예를 들어 용도 :

Write-Log -Message "It's all good!" -Path C:\MyLog.log -Clobber -EventLogName 'Application' 
Write-Log -Message "Oops, not so good!" -Level Error -EventID 3 -Indent 2 -EventLogName 'Application' -EventSource "My Script" 
Write-Log -Message "Just another example" -Level Warn 
+0

오, 좋아. [PoshPAIG] (http://poshpaig.codeplex.com/SourceControl/changeset/changes/856ae80565cc)에서이 파일의 내용을 알려주시겠습니까? https://gist.github.com/2886029 그는 Verbose, Warn 및 Debug를 사용하여 로깅하는 것 같습니다. 로깅하지 않니? –

+0

Andy Arismendi (Powershell Remoting과 함께 사용)의 쓰기 로그에 대한 최신 버전이 있습니까? PoshPAIG "로깅"을 사용하는 이유는 무엇입니까? – Kiquenet