Отфильтруйте вывод файла журнала

Это зависит немного от Вашего использования. Я сказал бы, что Виртуальный ПК только жизнеспособен, если хост и гость оба собираются быть Windows. Я нахожу, что Виртуальный ПК является lilttle более простым для использования, чем VMware. Я предложил бы, также рекомендуют испытать VirtualBox, потому что, а также быть свободным, он также хорошо показан.

3
задан 1 November 2013 в 12:39
3 ответа

Хорошо, действительно интересная проблема, учитывая, что она должна работать в конце конвейера. Могут быть более простые способы сделать это, но я обнаружил, что этот работает (и он использует Swiss Army Chainsaw , perl) системного администратора:

tail -f catalina.out | perl -n -e '{ if (/^java.io.IOException: Server returned HTTP response code: 401/) { $ignore=1;} elsif ($ignore>=1 and $ignore<20) {$ignore++;} else {$ignore=0; print $_;}  }'

В основном, он проходит через STDIN по одной строке за раз, глядя для строки поиска (« ^ java.io.IOException: сервер вернул код ответа HTTP: 401 »). Пока он не найден, он печатает каждую строку по мере поступления; как только он найден, он начинает отсчет до 20, один раз для каждой новой строки, ничего не печатая, пока считает; как только счетчик достигает 20, он сбрасывает счетчик до нуля и возобновляет печать каждой новой строки в.

Редактировать : Нет проблем. Начать с tail -100000f catalina.out | ... , или даже большее число, если в файле журнала больше строк. Если вы не хотите видеть новый материал по мере его добавления, попробуйте

perl -n -e '{ if (/^java.io.IOException: Server returned HTTP response code: 401/) { $ignore=1;} elsif ($ignore>=1 and $ignore<20) {$ignore++;} else {$ignore=0; print $_;}  }' < catalina.out.

Он предназначен для использования в конвейере, так что вы можете кормить его всем, что хотите, и вы можете отправить вывод на все, что в нем нуждается. Это способ UNIX!

3
ответ дан 3 December 2019 в 05:13

grep знает, что файлы следует принимать в качестве аргументов. Пожалуйста, проверьте мужчину. Вы можете использовать egrep вместо grep -e (что то же самое):

# egrep -v '^java.io|^\ {8}at' catalina.out | less
3
ответ дан 3 December 2019 в 05:13

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

cat catalina.out | grep -v -e '^java.io.IOExc' -e '       at ' | less

(замените 7 пробелов табуляцией [Ctrl + V, затем Tab], если это не сработает)

Если потребуется дополнительное удаление, мы начнем perl-grepping.

1
ответ дан 3 December 2019 в 05:13

Теги

Похожие вопросы