Вторник, 24.06.2025, 20:02
JimBot Portal by DeadInside
Главная Регистрация Вход
Приветствую Вас, Посетитель · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Inzhener  
Разбираем логи
InzhenerДата: Среда, 15.09.2010, 18:57 | Сообщение # 1
Генерал-полковник
Группа: Модераторы
Сообщений: 18
Репутация: 2
Отсутствует
Бот записывает массу информации в лог-файлы. Давайте разберемся как ее можно анализировать и использовать.

Все файлы логов хранятся в папке log. Они делятся на несколько категорий:
system.log - в этот файл попадает вся информация о боте, за исключением логов http-сервера. Может использоваться для просмотра цельной картины происходящего в боте. Но анализ может быть затруднен из-за избыточной информации в этом файле.
talk.log - этот файл предназначен для хранения только разговоров чата, я постарался отфильтровать отсюда все лишнее. При настройках по умолчанию файлы этого лога создаются за каждый день и хранятся всегда.
error.log - очень важный файл, сюда попадает информация из потока ошибок бота. Анализ может затруднить тот факт, что здесь не видно источник ошибки - после какого сообщения она произошла. Для анализа причин необходимо использовать system.log.
flood.log - сюда попадают сообщения, которые бот посчитал флудом. Обычно в них нет ничего страшного - это повторы или очень частые сообщения в чате. Но если вы видите большой поток повторяющихся сообщений с нескольких номеров - на это стоит обратить внимание, скорее всего ваш бот подвергся флуд-атаке. Для решения проблемы необходимо выделить уникальные номера из потока сообщений и добавить их в игнор-лист (файл idnore.txt)
http.log - содержит информацию о http-запросах к вашей веб-админке. Здесь вы можете увидеть попытки несанкционированного доступа к вашему боту. Но прошу обратить внимание, что эти логи могут содержать важную информацию о паролях и других настройках вашего бота. Не передавайте этот лог просто так незнакомым людям.

Давайте теперь рассмотрим самое важное - лог ошибок. Как правило, при обработки исключения в боте используется конструкция:

В результате ошибки происходит запись стека вызовов программы в поток ошибок, а следовательно и в лог-файл. Сообщение обычно выглядит следующим образом:

В начале блока сообщений мы видим собственно ошибку "Table 'mychat.rooms' doesn't exist", а далее идет содержимое стека вызовов. Оно как правило не интересно. Но если причина ошибки вам непонятна - смотрите место вызова, произошедшее непосредственно в боте. Так в данном случае мы видим что ошибка произошла: "at ru.jimbot.modules.chat.RoomWork.fillCash(RoomWork.java:59)" - файл RoomWork.java, строка 59. Это первая строчка, качающаяся исходников непосредственно нашего бота, а не сторонней библиотеки. Что находится в этой строке можно поглядеть в исходных текстах бота. Проанализировав эту информацию часто можно определить причину произошедшей ошибки. В рассмотренном выше случае все понятно из текста ошибки - отсутствует таблица rooms в базе данных.

Что еще нужно знать о логах? Для создания логов используется стандартная и широко распространенная библиотека log4j. Описание ее возможностей вы можете посмотреть на официальном сайте. Начиная с версии 0.4.0 настройки логирования выведены во внешний файл конфигурации: lib\log4j.properties. В нем вы можете настроитьтакие параметры как: размер файлов логов, количество архивных файлов, способ обозначения названий архивных файлов


Все сказанное не под копирайтами исключительно ИМХО
искренне Ваш, Inzhener
 
  • Страница 1 из 1
  • 1
Поиск: