如何读取一直更新的日志文件

时间:2014-08-14 12:13:43

标签: powershell

我试图创建一个脚本,使用windows powershell检查日志文件的内容。 powershell脚本正在检查从另一个Windows应用程序创建的日志文件。 该脚本如下:

$smtpServer = "MailServer"
$fdate = Get-Date -Format yyyyMMdd
$fname = "C:\tmp\"+$fdate+".log"

$content=Get-Content $fname -wait | where { $_ -match ": exception" }|
foreach {

$line=$_
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = "admin@xyz.com"
$msg.ReplyTo = "logs@xyz.com"
$msg.To.Add("logs@xyz.com")
$msg.subject = "Exception"
$msg.body = $line
$smtp.Send($msg)

Write-Host $line 
}

上面的脚本无法读取日志文件的新增内容。例如,如果我在日志文件中有10行,我现在启动脚本,它将只检查当前的10行。如果在脚本运行时从应用程序添加任何新行,则脚本无法检查新添加的行! 有关正确解决该问题的任何建议吗?有没有人尝试使用C / C ++或java做类似的事情? 谢谢

1 个答案:

答案 0 :(得分:0)