Worklight: отправлять клиентские логи на сервер
Я использую worklight 6.1 и пытаюсь отправить журналы, созданные в моем клиенте, на сервер, чтобы иметь возможность просматривать журналы в случае сбоя приложения. Я сделал (основываясь на этой ссылке http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fdevref%2Fc_using_client_log_capture.html):
Установите ниже в wlInitOptions.js
logger : { enabled: true, level: 'debug', stringify: true, pretty: false, tag: { level: false, pkg: true }, whitelist: [], blacklist: [], nativeOptions: { capture: true } },
В клиенте я установил ниже, куда я хочу отправить журнал:
WL.Logger.error("test"); WL.Logger.send();
Реализован необходимый адаптер
WLClientLogReceiver-impl.js
с функцией журнала, основанной на ссылке
К сожалению, я не вижу журнал в messages.log. У кого-нибудь есть идеи?
Я также попытался отправить журнал в аналитической базе данных на основе этой ссылки http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.monitor.doc/monitor/c_op_analytics_data_capture.html.
Что я сделал, это:
WL.Analytics.log( { "_activity" : "myCustomActivity" }, "My log" );
однако никакая новая запись не добавляется в таблицу app_Activity_Report. Есть что-то, чего мне не хватает?
1 ответ
Пара вещей:
Следуйте советам Идана в его комментариях и убедитесь, что вы смотрите правильные документы. Он прав; эта функция сильно изменилась между версиями.
У вас есть 90% конфигурации, но вы пропустили последний кусочек. Просто отправка журналов на ваш адаптер недостаточно для их отображения в вашем messages.log. Вам нужно выполнить одно из следующих действий, чтобы включить его в messages.log:
- установить аудит = "истинный" атрибут в
<procedure>
тег файла WLClientLogReceiver.xml или - Записывайте загруженные данные явно в реализацию вашего адаптера. Однако помните, что API WL.Logger на сервере зависит от конфигурации уровня сервера приложений.
- установить аудит = "истинный" атрибут в
Также данные WL.Analytics.log не попадают в базу данных отчетов. Единственный открытый API, который заполняет базу данных, - это WL.Client.logActivity. Я рекомендую придерживаться API WL.Logger и WL.Analytics.