Function Write-Log {
[cmdletbinding()]
Param(
[Parameter(Position=0)]
[ValidateNotNullOrEmpty()]
[string]$Message,
[string]$Path= "$env:SHELL_LOCATION" + "\log\shell.log",
[string]$level = "info"
)
$LogFile = $Path
$setLevel = 'debug';
switch -wildcard ($setLevel)
{
'info'{
switch -wildcard ($level) {
'info' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'warning'{Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'error' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'debug' {}
default {}
}
}
'debug' {
switch -wildcard ($level) {
'info' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'warning'{Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'error' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'debug' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
default {}
}
}
'warning' {
switch -wildcard ($level) {
'info' {}
'warning' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'error' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'debug' {}
default {}
}
}
'error' {
switch ($level) {
'info' {}
'warning' {}
'error' {Write-Output "[$level] : $(Get-Date) ---- $Message" | Out-File -FilePath $LogFile -Append }
'debug' {}
default {}
}
}
}
}