728x90
반응형
1. 개요
PowerShell을 하다보니, 로그를 찍어야 할 때가 있었습니다. 그래서 로그를 찍어서 파일로 내보내는 것을 직접 만들었습니다. 굳이 만들지 않고 다른 걸 가져다 사용해도 되지만, 하드한 걸 좋아하기 때문에 하드하게 만들었습니다.
감히 예상하건데, 저 말고 아무도 사용하지 않을 것 같습니다.
2. Log 만들어서 파일 내보내기
# StringBuilder 에 로그 내용 담기
$Out_StringBuilder = [System.Text.StringBuilder]::new()
# 콘솔에 로그 찍기
Function Write-Log
(
[String] $log_type,
[String] $message
)
{
# 로그 타입을 전부 대문자로
$log_type = $log_type.ToUpper()
# 로그 내용에 시간 추가 ex) [2022-01-01 01:56:24] [WARN] 로그내용
$full_log_message = "[" + (get-date).tostring("yyyy-MM-dd HH:mm:ss") + "] [$log_type]`t$message"
# 그냥 변수(Temp)에 담아봤습니다.
$Temp = $Out_StringBuilder.AppendLine($full_log_message)
# 로그 타입이 에러면, 화면에 쓸 때에 배경과 색상 꾸미기
if ($log_type -eq "ERROR")
{
Write-Host $full_log_message -BackgroundColor Black -ForegroundColor red
}
else
{
Write-Host $full_log_message
}
}
# 끝 로그 만들기 + 콘솔에 로그 찍기
############################################
# 들어온 값을 파일로 내보내기
Function Export-Log
(
[String] $log_directory,
[String] $log_filename,
[String] $log_String
)
{
# Create Log Directory if it is NULL
if ( !(Test-Path $log_directory) )
{
New-Item -Path $log_directory -ItemType "Directory" -Force
}
# 로그 파일이름
$log_filename = (get-date).tostring("yyyyMMdd_HHmmss") + "_" + $log_filename
# 로그 내용 파일로 내보내기
$log_String | Out-File `
-FilePath $("$log_directory\$log_filename.txt") `
-Encoding OEM
}
$log_directory = "C:\temp"
$filename = "LOG_TESTER"
<# 당신의 코드를 입력하세요 #>
<# 당신의 코드를 입력하세요 #>
<# 당신의 코드를 입력하세요 #>
Write-Log "INFO" "이거 어떻게 사용하는거에요?"
<# 당신의 코드를 입력하세요 #>
<# 당신의 코드를 입력하세요 #>
<# 당신의 코드를 입력하세요 #>
# 스크립트 제일 마지막에 아래 코드를 필수로 실행
# StringBuilder 에 담아놓은 내용을 파일로 내보내기
Export-Log $log_directory $filename $($Out_StringBuilder)
Write-Log 에 내용을 입력하면 됩니다.
그 후 마지막에 "Export-Log"에 로그파일 저장 경로와 이름, $Out_StringBuiler 만 하면 됩니다.
3. 해당 코드를 실행한 모습
잘 실행되었습니다.
(출처)
98% 직접 머리를 짜내서...... 2%는 잃어버렸습니다.
728x90
반응형
'Windows > PowerShell' 카테고리의 다른 글
PowerShell | 처음 실행 시 메시지 띄우기, ps1 실행하기 (about_profiles) (0) | 2023.03.22 |
---|---|
PowerShell | 방화벽 한 번에 해제하기 (0) | 2023.03.20 |
PowerShell | 오랜 기간 로그인하지 않은 사용자 프로필 삭제하기 (예외 프로필 추가) (0) | 2022.11.18 |
PowerShell | 모니터 밝기 조절하기 (0) | 2022.10.08 |
PowerShell | 휴지통에 파일 생성, 보기, 삭제, 휴지통 비우기 (0) | 2022.10.05 |
댓글