Статьи

IBM MobileFirst и удаленное ведение журнала на стороне клиента в мобильных приложениях

Одна из многих популярных функций IBM MobileFirst SDK — это возможность захвата журналов на стороне клиента с мобильных устройств в открытом доступе в центральном месте (на сервере). Это означает, что вы можете собирать информацию с устройств * после * развертывания приложения в рабочей среде. Если вы пытаетесь отследить или воссоздать ошибки, это может быть невероятно полезно. Допустим, у пользователей iOS 7.0, в частности моделей iPhone 4, возникла проблема. Вы можете захватывать журналы устройств на этом уровне детализации (или, если хотите, в гораздо более широкой области).

Классы ведения журнала в MobileFirst Platform Foundation по своей концепции аналогичны  Log4J . У вас есть классы журналирования, которые вы можете использовать для записи сообщений трассировки, отладки, информации, журнала, предупреждений, фатальных ошибок или ошибок. Вы также можете дополнительно указать имя пакета, которое используется для определения того, из какого модуля кода поступают операторы отладки. С помощью имени пакета вы сможете увидеть, поступает ли сообщение журнала от менеджера аутентификации пользователя, получателя данных, представления пользовательского интерфейса или любого другого класса в зависимости от того, как вы настроили свои регистраторы. Как только файл журнала достигнет указанного размера буфера, он будет автоматически отправлен на сервер.

На сервере вы можете настроить профили журналов, которые определяют уровень детализации сообщений, которые перехватываются на сервере. Допустим, ваше приложение использует 100 000 устройств. Вы можете настроить профили для сбора сообщений об ошибках или фатальных сообщениях для каждого экземпляра приложения. Однако вы, вероятно, не хотите захватывать полные журналы устройства для каждого экземпляра приложения; Вы можете настроить профили журналов, чтобы захватывать только полные журналы для определенного набора устройств.

В качестве примера, посмотрите на скриншот ниже, чтобы увидеть, как вы можете настроить профили сбора журналов:

Настройка профилей журнала на сервере MobileFirst

Настройка профилей журнала на сервере MobileFirst

При написании кода вам просто нужно создать экземпляр регистратора, а затем записать в журнал.

Если вам интересно, когда вам может понадобиться инструкция трассировки, а не инструкция журнала, а не инструкция отладки и т. Д. Вот руководство по уровню использования из документации :

  • Используйте TRACE для точек входа и выхода метода.
  • Используйте DEBUG для вывода результата метода.
  • Используйте LOG для создания экземпляров классов.
  • Используйте INFO для отчетов об инициализации.
  • Используйте WARN для регистрации устаревших предупреждений об использовании.
  • Используйте ERROR для непредвиденных исключений или неожиданных ошибок сетевого протокола.
  • Используйте FATAL для неисправимых сбоев или зависаний.

Для гибридных приложений вы используете класс WL.Logger в JavaScript:

var logger = WL.Logger.create({pkg: 'mynamespace.mymodule'});
 
logger.trace('trace', 'another mesage');
logger.debug('debug', [1,2,3], {hello: 'world'});
logger.log('log', 'another message');
logger.info('info', 1, 2, 3);
logger.warn('warn', undefined);
logger.error('error', new Error('oh no'));
logger.fatal('fatal', 'another message');

Для нативных приложений iOS вы будете использовать класс OCLogger :

OCLogger *logger = [OCLogger getInstanceWithPackage:@"UserManager"];
 
[logger trace:@"this is a trace message"];
[logger debug:@"this is a debug message"];
[logger log:@"this is a log message"];
[logger info:@"this is an info message"];
[logger warn:@"this is a warning message"];
[logger error:@"this is an error message"];
[logger fatal:@"this is a fatal message"];

Для нативных приложений Android вы будете использовать  класс com.worklight.common.Logger :

private final static Logger logger = Logger.getLogger(MyClass.class.getName());
 
logger.trace('trace mesage');
logger.debug('debug message');
logger.log('log message');
logger.info('info message');
logger.warn('warn message');
logger.error('error - OH NOES!');
logger.fatal('fatal - Oops, you broke it');

Затем на сервере вы можете перейти на панель аналитики и получить доступ к полным журналам устройства или выполнить поиск по всем журналам на стороне клиента с возможностью фильтрации по имени приложения, версиям приложения, уровням журнала, имени пакета, среде, моделям устройств. и версии ОС в необязательном диапазоне дат и с возможностью поиска ключевых слов в сообщении журнала.

Журнал результатов поиска на панели мониторинга MobileFirst Analytics

Журнал результатов поиска на панели мониторинга MobileFirst Analytics

Для получения полной справки и дополнительных сведений обязательно ознакомьтесь с последними документами по ведению журнала на стороне клиента с платформой MobileFirst .