If I do not want to use an external logging service, I am in a hurry, and my boxes have adequate power and bandwidth, I would use iControl REST POST /mgmt/tm/util/bash to call "cat <file> | grep keywords". Run this against all the boxes one by one.
$ curl -sku $PASS https://$HOST/mgmt/tm/util/bash \
-X POST -H "Content-type: application/json" \
-d '{"command":"run", "utilCmdArgs": "-c \"cat /var/log/tomcat/catalina.out | grep \\\"Unknown version\\\"\""}' \
| jq -r '.commandResult'
WARNING: Unknown version string [3.1]. Default version will be used.
(I chose "Unknow version" for grepping as my log presently does not have OutOfMemoryError".)
I chose jq for parsing. You can do the same using python, of course. Be careful with the double escaping for double-quotes. We can easily make mistakes (For the above call, I tried three times :-).
For a sophisticated method for deploying logging facility, check F5 Telemetry Streaming.