Как регистрировать исключение и сообщение с заполнителями с помощью SLF4J

Какой правильный подход для регистрации и сообщения об ошибке, и исключения, используя SLF4J ?

Я пробовал сделать это, но трассировка стека исключений никогда не выводится:

logger.error (" спроектирован и не так хорош. Все еще утечка в глобальную область. и ваш не открывая себя асинхронным загрузчикам. Но лучше, чем просто ad-hoc кодирование! »

Итак…

Если« утечка »в глобальную область видимости означает« ваш объект добавляется к окну (объекту) браузера »… тогда все уже добавляется (глобально):

Это« утекает »в глобальная область видимости:

window.jQuery

… просто вызовите: window.jQuery , и она разрешится как функция ();

Эта «утечка» в глобальную область:

function HelloWorld() { alert(‘Howdy’); }

… просто вызовите: окно .HelloWorld () , и вы получите 'Привет'.

Это «просачивается» в глобальную область:

var myVariable = 10;

… просто позвоните: window.myVariable , и вы получите 10

Если комментатор прав, то все вышеперечисленное «просачивается» в глобальную область видимости. Так что лично я не вижу способа НЕ «просачиваться» в глобальную область видимости, поскольку даже ваши элементы управления формой существуют там (также).

Таким образом, вот мои вопросы…

  • Что имеется в виду под «Просачивание» в global-scope?
  • Почему это плохо?
  • Как этого избежать?
  • Если вы хотите создать постоянный custom-objects, почему модуль Шаблон (ниже) плохой?
  • Шаблоны проектирования позволяют инкапсулировать сложная логика, инкапсуляция внезапно плохо просто потому, что мы пишет на JavaScript ?
  • Или ... этот комментатор просто неправ?

Вот шаблон модуля, о котором я упоминал выше:



ОБНОВЛЕНО

:
Я удовлетворен приведенными ниже ответами и хочу поблагодарить всех за то, что нашли время для комментариев.

ОБЗОР ОТВЕТОВ НИЖЕ:
«Утечка» в глобальную область видимости происходит, когда что-то, используемое в локальной области, непреднамеренно становится доступным для глобальной области (например, объект окна). Это плохо, потому что это открывает страницу для потенциальных конфликтов именования, которые могут привести к преобразованию переменных в неожиданные значения или типы.

Намеренное создание глобальной переменной не считается «утечкой». Тем не менее, правильное размещение имен объектов необходимо для снижения вероятности указанных конфликтов именования.

Вы не можете избежать глобальных переменных, но вы можете уменьшить вышеуказанные риски, используя асинхронные загрузчики и определяющие модули, доступные в надстройках, таких как RequireJS или Curl .

17
задан Community 23 May 2017 в 12:12
поделиться