A functioning Apache error log should never be empty -- as long as you're configured for loglevel Notice and up, you should get messages at every server startup being written into your error log. With a stock install on CentOS, for example, a fresh error log looks like this:
[Sun Nov 14 04:02:05 2010] [notice] Digest: generating secret for digest authentication
[Sun Nov 14 04:02:05 2010] [notice] Digest: done
[Sun Nov 14 04:02:05 2010] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.2 mod_ssl/2.2.15 OpenSSL/0.9.8e-fips-rhel5 configured -- resuming normal operations
I'd wager you either have the wrong log (double-check your Apache config instead of just assuming it's the one under /var/log/httpd or wherever) or your log isn't writable for some reason. Log rotation is another possible reason, though usually logrotate will restart the Apache process after it's done.
Speaking of logrotate, do you find that your service tends to stop on any particular day of the week? Logrotate runs once per week, and it's possible the HUP it sends your httpd process is not restarting it correctly.
Do still definitely take mattdm's advice and check dmesg for OOMkiller messages, especially if you're on a VPS (most VPS hosts love to enable memory overcommit).