Are you on shared hosting or is this your own server? I'd have assumed shared, but Tomcat makes me think it's your own. If so, you may need to wait for someone who speaks Apache-- phranque? you out there? --as I don't know if Tomcat creates logs of its own.
If a request gets a 403 error, it is already blocked in some way, so you have done what you need to do. There is no way to keep blocked requests from getting logged. (Well, OK, there is if you have your own server, but even then it is very unlikely you would
want to leave anything unlogged.)
A 500-class error merits closer inspection. One simple possibility is mod_security; I think it currently defaults to 503. (My host creatively uses 418 instead. This makes it very easy to analyze logs.) Sometimes they mean that a malign robot has walloped you so hard (over some-number-of concurrent connections), the server starts returning 500s to protect itself.
One thing you can do is look at your Apache error logs. Normally they will be stored in the same place as your access logs. On shared hosting they typically include all 400-class responses (again, on your own server you can change the logging level to exclude 403s). The most common line will be
:: shuffling papers ::
[Thu Mar 26 10:27:02 2015] [error] [client 50.192.203.171] client denied by server configuration: /home/username/example.com/wp-admin
[Thu Mar 26 10:59:39 2015] [error] [client 109.98.4.7] client denied by server configuration: /home/username/example.com/, referer: http://semalt.semalt.com/crawler.php?u=http://example.com
Unfortunately, no logging level will give you more detail. The "client denied by server configuration" wording means that something, somewhere, triggered a 403 [F] response. Generally it's a blocked IP; occasionally there will be some head-scratching as you try to work out why some particular human was locked out. (Here I'm assuming the first was a blocked IP while the second was blocked by the semalt referer.)
Then there are 404 errors:
[Wed Mar 25 11:15:56 2015] [error] [client 193.201.224.176] File does not exist: /home/user/example.com/includes/fckeditor
Q: Why didn't this request get blocked? A: Because I actually have an /includes/ directory, and it's got an "Allow from all" override so I can use includes even on the error page. So this 404 request was accompanied by a bunch of 403s from the same page. These 404s are a good way to catch new requests for things like /wp-admin/ from previously unknown malign robots. The ones you find in WMT tend to be malformed links from other people's sites. Most often I see a legitimate URL with a bit of text at the end, suggesting that they didn't put the closing </a> tag in the right place. Or that the Googlebot found a plain-text http link and didn't know when to stop reading.
Internal errors:
[Tue Mar 24 12:53:49 2015] [error] [client 66.127.aa.bb] unable to include "/includes/sharedlinks.php" in parsed file /home/user/example.com/boilerplate/forbidden.html
(This would be worrying, except that it was me testing a new page with an obvious glitch.)
mod_security errors:
[Thu Mar 19 03:00:55 2015] [error] [client 103.27.127.238] ModSecurity: Multipart parsing error: Multipart: Final boundary missing. [hostname "example.com"] [uri "/editors/ewebeditor//upload.asp"] [unique_id "{ snipped }"]
[Sun Mar 22 07:50:29 2015] [error] [client 91.121.169.22] ModSecurity: Access denied with code 418 (phase 1). Pattern match "^\\(\\) {" at REQUEST_HEADERS:Cookie. [file "/dh/apache2/template/etc/mod_sec2/hostname.conf"] [line "234"] [id "1990064"] [msg "CVE-2014-6271 - Bash Attack"] [hostname "example.com"] [uri "/"] [unique_id "{snipped}"]
There are some other formats, including a couple of User-Agents that never occur outside of unwanted robots. But I don't archive error logs so these are the only formats I can quote. (While hunting these down, I also made the unnerving discovery that some 418 requests don't show up in error logs. Don't know what this is about; I should probably ask.)
My personal log-wrangling routine pulls out all redirects and 400/500-class responses. The ones that can't be explained by automated methods (for example, a 301 followed by a non-301 for the same URL means someone used the wrong hostname) get a closer look.