Есть ли какой-нибудь способ отобразить WL.Сообщения об ошибках регистратора в Visual Studio 2012?

#visual-studio #visual-studio-2012 #logging #windows-phone-8 #ibm-mobilefirst

#visual-studio #visual-studio-2012 #ведение журнала #windows-phone-8 #ibm-mobilefirst

Вопрос:

Я разрабатываю приложение Worklight для Windows Phone 8. При сборке на устройство через Visual Studio 2012 я вижу сообщения, зарегистрированные через WL.Метод отладки Logger в консоли Visual Studio. Однако я не вижу никаких сообщений, которые были зарегистрированы с использованием WL.Метод ошибки регистратора.

Я не видел никаких других консолей в Visual Studio и WL.Документация Logger не дает большой помощи — единственная ссылка на Visual Studio — «Сообщения отладки отображаются в консоли Microsoft Visual Studio 2012». — что явно не упоминает сообщения об ошибках.

Есть ли какой-нибудь способ отобразить WL.Сообщения об ошибках регистратора в Visual Studio 2012?

Ответ №1:

Я никогда не использовал Visual Studio, поэтому отнеситесь к этому с недоверием. Возможно, вы можете переопределить вызов в средах Windows, чтобы использовать любой регистратор, который вы хотите. Например, давайте использовать console.log :

 if (running on windows env) {
   WL.Logger.error = function () {
     console.log.apply(console, arguments); //or alert(...)
  }
}
 

Вы можете получить текущую среду с помощью WL.Client.getEnvironment() API.

Если бы мне пришлось догадываться, console.error что именно WL.Logger.error используется для сообщений об ошибках (при условии, что оно определено), по какой-то причине не выводится на консоль.

Комментарии:

1. Основываясь на вашем предложении, я провел некоторое исследование и обнаружил, что при инициализации регистратора вы можете добавить обратный вызов, который будет выполняться при каждом вызове сообщения. Мое решение — определить обратный вызов, который, когда среда — Windows Phone 8, а приоритет журнала — ошибка, распечатает сообщение с помощью console.log() . Мой обратный вызов: function(message, priority, pkg) { if (WL.Client.getEnvironment() === WL.Environment.WINDOWS_PHONE_8 amp;amp; priority === 'error') { console.log(message); } } (Извинения. Я не знаю, как форматировать комментарии.)