Unix grep для журналов Java - PullRequest
       4

Unix grep для журналов Java

0 голосов
/ 01 февраля 2012

Я новичок в Unix grep, и мне нужна помощь с командой grep.

В настоящее время у меня есть следующие типы ошибок в журналах моего приложения:

2012-02-31 10: 21: 41,333 ОШИБКА [65] (GeneralAppliancesBean.java:135) - Исключение java.net.ConnectException: истекло время ожидания соединения

2012-01-31 10: 24: 41,843 ОШИБКА [41] (FlightStatusBean.java:135) - Исключение java.net.SocketTimeoutException: истекло время ожидания соединения

2011-01-31 10: 22: 41,841 ОШИБКА [1] (FlightCancellation.java:135) - Исключение java.rmi.ConnectException: истекло время ожидания соединения

2011-01-31 10: 22: 41,841 ОШИБКА [1] (OrderBean.java:132) - Исключение java.rmi.ConnectException: истекло время ожидания соединения

Я хотел бы знать метку времени (например, 2012-02-31 10:21:41,333), класс Java и строку, ответственную за (например, GeneralAppliancesBean.java:132) для этого исключения.

Как мне создать эту команду grep?

Ответы [ 2 ]

1 голос
/ 01 февраля 2012
grep ERROR java.log|awk '{print $1 $4}'
1 голос
/ 01 февраля 2012
shadyabhi@archlinux ~ $ echo '2012-02-31 10:21:41,333 ERROR [65] (GeneralAppliancesBean.java:135) - Exception java.net.ConnectException: Connection timed oot' | cut -d "," -f 1
2012-02-31 10:21:41
shadyabhi@archlinux ~ $ echo '2012-02-31 10:21:41,333 ERROR [65] (GeneralAppliancesBean.java:135) - Exception java.net.ConnectException: Connection timed oot' | cut -d " " -f 5
(GeneralAppliancesBean.java:135)
shadyabhi@archlinux ~ 

cut лучше подходит для этого.

Если ваши журналы находятся в файле с именем logs, используйте это.

while read myline 
    do
        echo "Date: "$(echo $myline | cut -d "," -f 1)
        echo "Error: "$(echo $myline | cut -d " " -f 5)
    done < logs

Если ошибки многострочные (к которым я отношусь скептически):

используйте grep "ERROR" logs | cut -d "," -f 1 для даты и grep "ERROR" logs | cut -d " " -f 4 для класса и номера строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...