Buscando logs do arquivo de log usando grep

0

Estou tentando buscar os logs do arquivo de log usando o comando grep e o formato do arquivo de log é o seguinte:

[1/10/16 23:55:33:018 PST] 00000057 ServerObj E   SECJ0373E: Exception message
at com.own.ws.wim.util.UniqueNameHelper.formatUniqueName(UniqueNameHelper.java:102)
at com.own.ws.wim.ProfileManager.getImpl(ProfileManager.java:1569)

Até agora, posso buscar logs, mas também quero o rastreamento de pilha.

grep -i '^[[:space:]]*at' --before-context=2 SystemOut.log | grep "1/13/16 7:[1-60]" 

output : [1/10/16 23:55:33:018 PST] 00000057 ServerObj E   SECJ0373E: Exception message

Alguma ideia de como isso pode ser alcançado?

    
por Anil Kumar 14.01.2016 / 09:33

1 resposta

0

O awk com um separador de campo "at" também pode funcionar. "^ [" corresponde às linhas que começam com o carimbo de data e $ 1 é o primeiro campo.

awk -F"at" '/^\[/{print $1}' test

Com base no seu comentário e se eu entendi bem o que você precisa, o comando awk deve incluir as linhas que você está procurando com o seu alcance entre as 7 e as 8 horas.

No entanto, parece que você precisa de duas listas. Para fazer isso, você poderia executar o comando awk no seu arquivo de log e enviá-lo para outro arquivo. Você poderia então awk / grep o segundo arquivo.

awk -F"at" '/^\[/{print $1}' test>> ExtractedLogs.txt
awk -F"at" '$1 ~ "07:"{print $1}' ExtractedLogs.txt>> StackTraceOnly.txt
    
por 14.01.2016 / 13:24

Tags