Atualmente, estou trabalhando na análise do desempenho de um aplicativo. Comecei examinando os logs gerados por nosso aplicativo e identificando as tarefas de lógica de negócios que estão demorando mais do que o tempo aceitável para execução.
Um snippet do arquivo de log é parecido com:
2014-07-02 18:03:20,269 INFO [ROOT] - Task1. xmlRecord Id :35165 processed
2014-07-02 18:05:20,269 INFO [ROOT] - Task1. xmlRecord Id :35162 processed
2014-07-02 18:15:20,269 INFO [ROOT] - Task1. xmlRecord Id :35164 processed
2014-07-02 18:20:20,269 INFO [ROOT] - Task2. xmlRecord Id :35165 processed
Meu requisito é encontrar o tempo total gasto na execução de cada tarefa. Por exemplo, a quantidade de tempo gasto na Tarefa2 para xmlRecord 35165 = Hora final da Tarefa 2 para xmlRecord 35165 - Hora Final da Tarefa 1 para xmlRecord 35165.
Por esse motivo, quero uma maneira de agrupar todas as declarações de log com o mesmo xmlRecord Id a serem agrupadas, conforme mostrado abaixo:
2014-07-02 18:03:20,269 INFO [ROOT] - Task1. xmlRecord Id :35165 processed
2014-07-02 18:20:20,269 INFO [ROOT] - Task2. xmlRecord Id :35165 processed
2014-07-02 18:05:20,269 INFO [ROOT] - Task1. xmlRecord Id :35162 processed
2014-07-02 18:15:20,269 INFO [ROOT] - Task1. xmlRecord Id :35164 processed
Se eu puder agrupar todas as instruções de log como mostrado acima, rapidamente poderei ver que foram necessários 17 minutos para que a Task2 processasse xmlRecord 35165.
Observe que os logs que mostrei aqui não são os registros exatos que meu aplicativo imprime, mas apenas uma amostra. Eu quero ser capaz de agrupar todas as instruções de log de tal forma que os logs para um determinado ID XML são sempre um após o outro.
Estou um pouco enferrujado com a concha e ficaria feliz se alguém pudesse me indicar um roteiro ou um script que já faz isso, para que eu não perca tempo reinventando a roda.