I am trying to monitor the content of a logfile, using a File Content Sensor.
My problem is that our server creates logfiles with the date encoded as part of the filename, e.g. MyServerLog_dd_mm_yyyy.txt.
Is there anyway of monitoring these logfiles by changing the filename dynamically as the sensor executes ?
Article Comments
For anyone else looking into this, you can do something similar to what Severin suggested using a batch file and then call that batch file every so often with task manager. The below will scan through all logs in the directory that start with "logfile_" (example logfile_10-24-2017.txt, logfile_11-01-2017.txt) copy the newest one and save it in the same directory as temp_log.txt
Batch file:
rem get latest file:
for /f "tokens=*" %%i in ('dir "c:\logs\logfile_*.txt" /s /od /b') do set a=%%i
rem copy it:
copy "%a%" "c:\logs\temp_log.txt"
May, 2017 - Permalink
That's a sample how you can do it with powershell. It's a logfile with an dynamic name, it changes every day with the actual date of the day. In the file it will search the last 20 rows for the word "error".
$date = get-date -format "yyyyMMdd"
$file = "servername\d$\staticname_" + $date + ".log"
$string = Get-Content $file | select -Last 20
$last = Get-Content $file | select -Last 1
if ($string -like "*error*")
{
write-host "<prtg>"
write-host "<result>"
write-host "<channel>Log Alarm</channel>"
write-host "<value>2</value>"
write-host "</result>"
write-host "<text>Error in logfile</text>"
write-host "</prtg>"
}
else
{
write-host "<prtg>"
write-host "<result>"
write-host "<channel>Log Alarm</channel>"
write-host "<value>0</value>"
write-host "</result>"
write-host "<text>Logfile OK - $last</text>"
write-host "</prtg>"
}
Oct, 2018 - Permalink
Hi there,
Thank you for the addition, will surely come in handy for some customers.
Best regards.
Oct, 2018 - Permalink
Can PRTG team modify File-Contrent sensor with third response's suggestion? It is pretty useful.
Sep, 2020 - Permalink
Hello,
Thank you for your interest in this sensor.
I shared your request with our developers but such feature is not planned (yet). The PowerShell scripts provided above remain the best options, at least for now.
Kind regards.
Sep, 2020 - Permalink
Hi,
Thank you for your question. Unfortunately, that is not possible, the File Content Sensor (https://www.paessler.com/manuals/prtg/file_content_sensor) is only able to check one predefined file. But maybe you can use tools like robocopy to copy the recent log version to a "log_temp.txt"? Our sensor could then look into this file.
Feb, 2015 - Permalink