Yeah, Cheap wins out again.
I would suggest looking at Nagios. Nagios is available free/open-source, although it's certainly worth paying for when you want enterprise-grade support.
The good thing about Nagios is that even free and out-of-the box it can monitor many critical system resources, group resources by categories and perform many different types of notifications including email and SMS. It's very flexible, although perhaps a bit confusing just reading the docs.
I use it extensively to not only monitor the physical condition of my hosts and VMs, but also to ensure that critical apps are running properly, that I'm not running out of disk space and in fact today I'm adding monitors to my primary servers to ensure I get notified if I'm dumping too much junk in my root directory, since that's where I tend to experiment and if I'm not carerful the backup server (also monitored by Nagios) will end up producing a multi-gigabyte weekly backup when it should normally be only a few hundred K. All in all, I continously monitor about 60 key resources just on my small R&D server farm.
There are some Nagios plugins for checking log files and whether they're being produced, and in fact, if someone does decide it's worth paying for, there's a commercial Nagios logserver product.
But for inexpensive do-it-yourself stuff where an available plugin won't do what you want, you can very easily create your own plugins in Python, Perl, Shell Scripts or whatever. I wouldn't use Java, though, since that requires a JVM to spin up and run for each Java plugin and I poll about every 5 minutes myself on most resources.
In the case of a logfile, you're most interested in streaming data, rather than in polling, so you would have a little extra work to do, but Nagios is routinely used to monitor SNMP traps and that's got the same considerations, so there's documentation on the web that can help.