forum.bitel.ru http://forum.bitel.ru/ |
|
Классы для работы с логами модуля INET http://forum.bitel.ru/viewtopic.php?f=19&t=9438 |
Страница 1 из 1 |
Автор: | Setig [ 14 июл 2014, 15:41 ] |
Заголовок сообщения: | Классы для работы с логами модуля INET |
Здравствуйте. Перед мной стоит задача создания BGBS скрипта, для оповещения по e-mail, в ситуации когда за некоторое время в модуль INET не поступают логи. Я столкнулся с проблемой что, не могу найти класс для работы с логами модуля Inet. Но я столкнулся с интерфейсом InetLogManagementService и методом в нём: inetLogExist(java.lang.Integer deviceId, java.util.Date month) Мои понимания Java начальные и тут возникает загвоздка: как я понимаю, интерфейс InetLogManagementService не является классом, который можно реализовать для получения списка логов за месяц. И я не могу найти класс, который реализует эту задачу. В общем возникает вопрос: правильно ли я понимаю, что из данного интерфейса я ничего не могу взять и нет ли классов в BGBilling в которых реализовано получения списка логов за месяц? |
Автор: | stark [ 14 июл 2014, 16:03 ] |
Заголовок сообщения: | Re: Классы для работы с логами модуля INET |
Есть InetLogManagementServiceImpl, но вам он не нужен, он спрятан для вас. Вот тут пример получения сервиса. |
Автор: | Cromeshnic [ 14 июл 2014, 17:12 ] |
Заголовок сообщения: | Re: Классы для работы с логами модуля INET |
Логичнее нормальный мониторинг настроить имхо. Zabbix + JMX например (если есть JMX для логов). Или внешними скриптами смотреть директорию с логами. |
Автор: | stark [ 14 июл 2014, 17:20 ] |
Заголовок сообщения: | Re: Классы для работы с логами модуля INET |
Cromeshnic писал(а): (если есть JMX для логов). пока нет, но можно добавить. |
Автор: | Setig [ 14 июл 2014, 23:14 ] |
Заголовок сообщения: | Re: Классы для работы с логами модуля INET |
Спасибо, stark. Сервис создал, массив загруженных логов получил... Странно, но у меня выводит следующее: Код: int []: { 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 2097151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } Массив из 31-го элемента, как я понимаю это дни, то есть 0 элемент = 1 день месяца, 1 элемент = 2 день месяца и так далее... А как быть, если нужно посмотреть: есть ли логи какого дня, в какое-то время часа? То есть например узнать был ли загружен лог 14 дня месяца в 15 часов? Или я не правильно работаю с массивом и надо переопределить возвращающее значение от метода "inetLogExist" ?.. Код который это всё выводит: Код: // Получение текущей даты
Calendar calendar = new GregorianCalendar(); // Получение сервиса логов модуля INET InetLogManagementService InetLogManagement = ServerContext.get().getService( InetLogManagementService.class, INET_MODULE_ID ); GregorianCalendar calendar_PrevDay = (Calendar) calendar.clone(); calendar_PrevDay.add( GregorianCalendar.DAY_OF_MONTH, -1 ); // Получение логов за месяц Result result = InetLogManagement.inetLogExist( INET_ROOT_DEVICE_ID, TimeUtils.convertCalendarToDate( calendar_PrevDay ) ); print( result.getAttributes().get("logExists") ); |
Автор: | stark [ 15 июл 2014, 10:26 ] |
Заголовок сообщения: | Re: Классы для работы с логами модуля INET |
Setig писал(а): Спасибо, stark. Сервис создал, массив загруженных логов получил... Странно, но у меня выводит следующее: Код: int []: { 16777215, 16777215, 16777215, Каждое значение это битовая маска, где каждый бит данные для каждого часа(1 - логи есть за час, 0 - логов нет). Вот запись в двоичной системе Код: 16777215 = 0000 0000 1111 1111 1111 1111 1111 1111 Это означает что в это день есть логи для всех 24 часов (всего 32 бита поэтому слева нули). Вам надо использовать операции сдвига чтобы проверить конкретный час. Что-то типа этого: Код: int logExists [] = result.getAttributes().get("logExists")
for( int i =0; i < 31; i++) { int value = logExists[i]; for( int j =0; j < 24; i++) { //существует ли лог для j-го часа в i-ы день boolean isExists = value & (1 << j ) > 0; } } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |