Log_analysis is a project mainly written in Ruby, it's free.
Analysis of compilation log
h2. Введение
В статье описан метод работы со скриптом, сравнивающим 2 файла лога компиляции (старый и новый).
h2. Возможности скрипта
Предположим, что у вас есть старый файл лога компиляции (log1.txt) и файл лога, который вы сами только что сохранили (log2.txt). Требуется сравнить эти два файла, чтобы определить, не добавилось ли новых ошибок в новой версии или патче.
Сделать это можно руками или с помощью небольшого скрипта log_analysis.rb.
Этот скрипт сравнит 2 файла и покажет:
| Примечание: \ Следует сказать, что некоторые логи могут содержать больше чем один блок итогов компиляции. В таком случае, сравниваться будут только последние блоки. |
h1. Установка
Скрипт написан на языке Ruby, поэтому для запуска скрипта надо сначала установить среду Ruby. Делается это просто, с помощью обычного установщика. Установщик не требует прав администратора.
| Примечание: \ Файлы установщика и самого скрипта прикреплены к данной странице.| Во время установки укажите папку для установки, на запись в которую у вас есть доступ, например D:\Ruby192. Также во время установки разрешите установщику добавить путь до экзешника руби в PATH.
Теперь скачайте сам скрипт и запустите его таким образом:
{code} ruby <путь до скрипта> <путь до старого лога> <путь до нового лога> {code}
Например: {code} D:\projects\log_analysis> ruby log_analysis.rb D:\COMP@CNN_TEST_230611_112656.log D:\COMP@CNN_TEST_230611_123519.log {code}
h1. Использование
Чтобы сравнить два файла лога, нужно запустить скрипт через командную строку, передав в качестве параметров сначала путь до старого лога, а затем путь до нового:
{code} ruby log_analysis.rb log1.txt log2.txt {code}
Скрипт запуститься и выведет информацию схожую со следующей:
{code} D:\projects\log_analysis>ruby log_analysis.rb D:\COMP@CNN_TEST_230611_112656.log D:\COMP@CNN_TEST_230611_123519.log
Сравниваю файлы...
Старый лог: D:\COMP@CNN_TEST_230611_112656.log Новый лог : D:\COMP@CNN_TEST_230611_123519.log
Количество блоков компиляции: В старом логе: 1 В новом логе : 1 Далее будут учитываться только последние блоки компиляции
Ошибок в старом файле : 433 Ошибок в новом файле : 260 Всего устранено ошибок: 173
Появилось новых ошибок: 5
Новые ошибки: 1: Операция SYSTEM.CLOSE_106 2: Операция SYSTEM.CLOSE_LDZ 3: Операция SYSTEM.CLOSE_SOVET 4: Операция SYSTEM.CLOSE_UVKX 5: Операция SYSTEM.CLOSE_UZD
Контекст ошибок:
======== Контекст ошибки #1 (строка 831) ======== 185: Операция SYSTEM.CLOSE_106 Имеет ошибки
======== Контекст ошибки #2 (строка 833) ======== 186: Операция SYSTEM.CLOSE_LDZ Имеет ошибки
======== Контекст ошибки #3 (строка 837) ======== 188: Операция SYSTEM.CLOSE_SOVET Имеет ошибки
======== Контекст ошибки #4 (строка 839) ======== 189: Операция SYSTEM.CLOSE_UVKX Имеет ошибки
======== Контекст ошибки #5 (строка 841) ======== 190: Операция SYSTEM.CLOSE_UZD Имеет ошибки {code}
Как видно из приведенного выше ответа скрипта, в новом логе присутствует 5 ранее отсутствовавших ошибок. Однако общее количество ошибок уменьшилось на 173.
Сначала перечислены сами ошибки, затем дается более подробный контекст ошибки, с указание номера строки из файла лога, содержашего ошибку.
h1. Известные проблемы
Существует несколько известных проблем:
h2. Обратная связь
Обо всех найденных ошибках и т.д. сообщайте на адрес mailto:[email protected]. Также о багах можно отписать на [github|https://github.com/BlackFoks/log_analysis].