【发布时间】:2021-08-19 08:51:39
【问题描述】:
我正在尝试监控应用程序的日志并在发生错误时发送警报。这很简单。
$file = Get-ChildItem "X:\Log\" | Where-Object {$_.Name -match "log"} | Select-Object -Last 1
Get-Content $file.FullName -Tail 0 -Wait | `
ForEach-Object {
if($_ -match "ERROR") {
Send-Alert -Subject "ERROR in $file on $env:COMPUTERNAME" -Body $_
}
}
不那么简单的是,应用程序创建了一个名为 log-DD-MM.log 的文件,这意味着如果服务崩溃并且应用程序启动一个新的日志文件,PowerShell 仍将尝试跟踪旧的 $file,即仍然存在,但没有写入数据。
有什么方法可以处理这个并且总是检查最后一个文件吗?我想了一会儿,但在重新检查时可能会错过一些信息。
【问题讨论】:
标签: powershell logging error-handling