Я тут немножко доработал
ats_grepko, и в результате получился конвертер логов почти из чего угодно в формат bgb.
Когда это может пригодиться?например, когда необходимо из кучи разных источников заливать данные в бгбиллинг, но для каждого из источников лень целиком писать свой конвертер. данный скрипт позволяет это сделать путем написания небольшого куска кода, который по сути будет читать данные из сырого лога и приводить их в формат, понятный БГБиллингу. Формирование файлов CDR и их архивацию скрипт берет на себя.
Кроме того, данный скрипт использует плагиновую архитектуру. Это позволяет, например, фильтровать данные из грязного лога. Подробности смотрите в архиве с исходниками.
требования:установка:аргументы командной строки:- -i директория - директория с исходными грязными логами
- -o директория - директория, в которую будут складываться чистые кусочки логов
- -m маска - маска для поиска грязных логов. В одной директории грязные логи могут лежать разных форматов
- -clean - очищать директорию для чистых кусочков перед работой. по умолчанию не очищается
- -nozip - не архивировать чистые кусочки. Это нужно для того, чтобы можно было из нескольких источников грязных логов склеить одни чистые кусочки логов
использование:- использовать: ./logconv -i <директория_с_грязными_логами>/<маска_файлов_для_поиска> -o <директория_куда-складывать_чистые_логи> -c <имя_конвертера_формирующий_данные>
- в директории, переданной с ключем o появятся разбитые на кусочки файлы, а в поддиректории zip файлы, заархивированнные для БГБиллинга
пример использования:- ./logconv.php -i bgb/dirty/ -o bgb/clean/ -m \*.log -c bgb
как писать конвертеры:Посмотрите в папку converters, там есть файл bgb.php, который довольно подробно расписан, по его подобию можно написать какой угодно конвертер. Кроме того, сам файл logconv.php довольно подробно закомментирован
как писать плагины:Посмотрите в папку plugins, и все поймете. Учтите, Чтобы Ваш плагин посчитал, что переданная строчка не нужна, он должен вернуть false, иначе возвращает массив, который был передан ему в качестве параметра в исходном виде, либо, модифицированный.
это окончательный вариант кода?Нет, код иногда будет модицифироваться и улучшаться. Последнюю версию кода
можно найти на гитхабе
_________________
using billingClient.BGB 4.6;
using server.Ubuntu server 9.10;
using server.Java "1.6.0_15";
using client.Ubuntu 10.04;