94 lines
2.1 KiB
PowerShell
94 lines
2.1 KiB
PowerShell
function Set-LogFile {
|
|
[CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')]
|
|
Param(
|
|
[Parameter(Mandatory = $true)]
|
|
[Alias('LogPath')]
|
|
[string]$Path,
|
|
[Parameter(Mandatory = $true)]
|
|
[Alias('Logname')]
|
|
[string]$Name
|
|
)
|
|
|
|
$FullPath = Get-FullPath $Path $Name
|
|
|
|
# Create file if it does not already exists
|
|
if (!(Test-Path -Path $FullPath)) {
|
|
|
|
# Create file and start logging
|
|
New-Item -Path $FullPath -ItemType File -Force | Out-Null
|
|
|
|
Add-Content -Path $FullPath -Value "***************************************************************************************************"
|
|
Add-Content -Path $FullPath -Value " Logfile created at [$([DateTime]::Now)]"
|
|
Add-Content -Path $FullPath -Value "***************************************************************************************************"
|
|
Add-Content -Path $FullPath -Value ""
|
|
Add-Content -Path $FullPath -Value ""
|
|
}
|
|
}
|
|
|
|
function Write-LogFile {
|
|
[CmdletBinding()]
|
|
Param(
|
|
[Parameter(Mandatory = $true)]
|
|
[Alias('LogMessage')]
|
|
[string]$Message,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[Alias('LogPath')]
|
|
[string]$Path,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[Alias('Logname')]
|
|
[string]$Name,
|
|
|
|
[ValidateSet("Error", "Warning", "Info")]
|
|
[string]$Level = "Info"
|
|
)
|
|
|
|
|
|
Set-LogFile $Path $Name
|
|
$FullPath = Get-FullPath $Path $Name
|
|
|
|
# Format date for log file
|
|
$FormattedDate = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
|
|
|
switch ($Level) {
|
|
'Error' {
|
|
# Write-Error $Message
|
|
$LevelText = '[ERROR]:'
|
|
}
|
|
'Warning' {
|
|
# Write-Warning $Message
|
|
$LevelText = '[WARNING]:'
|
|
}
|
|
'Info' {
|
|
# Write-Verbose $Message
|
|
$LevelText = '[INFO]:'
|
|
}
|
|
}
|
|
Add-Content $FullPath "$FormattedDate $LevelText"
|
|
Add-Content $FullPath "$Message"
|
|
Add-Content $FullPath "--------------------------"
|
|
Add-Content $FullPath ""
|
|
}
|
|
|
|
function Get-FullPath {
|
|
[CmdletBinding()]
|
|
Param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$Path,
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$File
|
|
)
|
|
|
|
$FullPath = ""
|
|
if ($Path.Length -gt 0) {
|
|
if ($Path[$Path.Length - 1] -ne "\") {
|
|
$FullPath = $Path + "\" + $File
|
|
}
|
|
else {
|
|
$FullPath = $Path + $File
|
|
}
|
|
}
|
|
|
|
return $FullPath
|
|
} |