В моих файлах журналов есть следующие записи:
09-22-11 12:35:09 1ms INFO ...erChangeSetListener:91 11 processing changeSet for class:4328,at version:1316720109100
09-22-11 12:35:09 779ms INFO ...erChangeSetListener:91 11 processing changeSet for class:4334,at version:1316720109882
09-22-11 12:35:09 1ms INFO ...erChangeSetListener:91 11 processing changeSet for class:4328,at version:1316720109882
09-22-11 12:35:11 1s WARNING QueryServiceImpl:100 - no existing index for class:4328
09-22-11 12:35:11 SEVERE QueryRequest:107 7 Aod query resulted in error:No index available for class:4328
09-22-11 12:35:11 SEVERE AuthenticationTask:48 - EndUserException: an error occurred when processing the query Dump: /data1/amir/dev/devots/logs/dumps/22i123511.dump
, к которым я применяю это регулярное выражение:
final String pattern = "^(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})" //date
+ "[.]*" //ignore for now
+ "(SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST)" //severity
+ "[.]*"; //ignore the rest for now
final Pattern regex = Pattern.compile(pattern);
final Matcher m = regex.matcher(currentLine);
if (m.matches()) {
for (int i = 1; i <= m.groupCount(); i++) {
System.out.format("[%d] \"%s\"%n", i, m.group(i));
}
}
Но мои совпадения никогда не возвращают trueЯ не понимаю почему.Я хотел бы эластично обрабатывать эти различные типы записей.Обратите внимание, что с последней записью журнала связан файл дампа.