Here, a simple solution of log analyzer which allows error searching; This tools gives the possibility to search specific error keywords and skip others:

String logFileNameAndPath = baseDir+File.separator+"server.log";

// Errors keywords
ArrayList<String> errorsKeyword = new ArrayList<String>();
errorsKeyword.add("ERROR [");

// Errors to skip
ArrayList<String> errorsToSkip = new ArrayList<String>();
errorsToSkip.add("ERROR [STDERR]");

LogAnalyzer.analyzeLog(logFileNameAndPath, errorsKeyword, errorsToSkip);

Following, examples of searching report:


---------- [ Report ] for tomcathuo.log (size:109355312)------------- 
Analysing started at Tue May 01 01:52:28 CEST 2012 and ended at Tue May 01 01:53:02 CEST 2012
Execution time is (34179ms): 0 min, 34 sec, 34145 ms
Error Keywords:
- ERROR [
- ORA-

Error to skip:
- 11:00:32,886 ERROR [

Error count : 
632 occurences of : ORA-
16 occurences of : 11:00:32,886 ERROR [
5104 occurences of : ERROR [


---------- [ Report ] for server.log (size:1085981)------------- 
Analysing started at Tue May 01 01:47:41 CEST 2012 and ended at Tue May 01 01:47:41 CEST 2012
Execution time is (47ms): 0 min, 0 sec, 47 ms
Error Keywords:
- ERROR [

Error to skip:
- ERROR [STDERR]

Error count : 
4 occurences of : ERROR [STDERR]
6752 occurences of : [error] 
323 occurences of :  error 
323 occurences of : Fatal error:
5 occurences of : ERROR [
87 occurences of : error 5
77 occurences of : PHP Fatal error:  Call to undefined method PDF


---------- [ Report ] for access.log (size:47072233)------------- 
Analysing started at Tue May 01 01:47:53 CEST 2012 and ended at Tue May 01 01:47:55 CEST 2012
Execution time is (2624ms): 0 min, 2 sec, 2622 ms
Error Keywords:
- GET /home/mysql/css/phpmyadmin.css.php

Error to skip:

Error count : 
4 occurences of : ERROR [STDERR]
2118 occurences of : GET /home/mysql/css/phpmyadmin.css.php
6752 occurences of : [error] 
323 occurences of :  error 
323 occurences of : Fatal error:
5 occurences of : ERROR [
87 occurences of : error 5
77 occurences of : PHP Fatal error:  Call to undefined method PDF

Some figures of the above reports:
– 2 seconds for the analyze of file whose size is 47Mo
– 34 seconds for the analyze of file whose size is 110Mo
of course, these figures depend of number of errors sought/searched or errors to be skipped.

Download: LogAnalyzer.zip