Как эффективно использовать механизм регистрации? - PullRequest
5 голосов
/ 02 февраля 2011

Я использую log4javascript для входа и отслеживания проблем в моем коде JavaScript. Я уже видел подобные средства ведения журналов, но у меня возникают трудности с пониманием того, как каждый из этих уровней журналов следует использовать, чтобы быть более полезным и продуктивным.

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

Может кто-нибудь дать мне некоторые рекомендации / помощь, чтобы я мог хорошо использовать механизм регистрации.

Ниже приведены различные уровни журнала, поддерживаемые log4javascript:

  1. log4javascript.Level.ALL
  2. log4javascript.Level.TRACE
  3. log4javascript.Level.DEBUG
  4. log4javascript.Level.INFO
  5. log4javascript.Level.WARN
  6. log4javascript.Level.ERROR
  7. log4javascript.Level.FATAL

1 Ответ

15 голосов
/ 02 февраля 2011

Я автор log4javascript и использую его каждый день в своей работе. Вот как я это использую:

  • Я чаще всего использую debug() и trace(). Я использую trace() для регистрации низкоуровневых операций при попытке выследить ошибку и debug() для более общей регистрации потока программы. У меня для консоли установлено пороговое значение DEBUG для моего обычного кодирования, чтобы у меня не было сообщений трассировки, загромождающих журнал, и затем переключаю его на ALL, когда мне нужно увидеть сообщения трассировки.
  • Я использую info() совсем немного, обычно для того, чтобы отдельные сообщения немного выделялись в консоли регистрации.
  • Я свободно использую group() (см. http://log4javascript.org/docs/manual.html#loggers) для группировки журналов для конкретной операции и позволяет мне расширять и сворачивать фрагменты журналов. Группы также могут быть вложенными.
  • Я храню свой код инициализации регистрации в одном месте и предоставляю каждому компоненту моего приложения отдельный регистратор (который наследуется от корневого регистратора). Это позволяет мне устанавливать пороги регистрации для определенных компонентов.

Например:

var component1 = (function() {
    var log = log4javascript.getLogger("MyApp.Components.Component1");

    // Implementation stuff
})();

var component2 = (function() {
    var log = log4javascript.getLogger("MyApp.Components.Component2");

    // Implementation stuff
})();

В коде инициализации регистрации:

// Create a console appender that is inherited by all loggers
var appender = new log4javascript.PopUpAppender();
appender.setThreshold(log4javascript.Level.DEBUG);

// Limit the number of messages displayed in the console at any one time
appender.setMaxMessages(2000);

log4javascript.getRootLogger().addAppender(appender);

// Disable all logging except ERROR and FATAL for the "MyApp.Components"
// logger and all its descendants (including "MyApp.Components.Component1" and
// "MyApp.Components.Component2")
log4javascript.getLogger("MyApp.Components").setLevel(log4javascript.Level.ERROR);

Этот материал является общим для всех каркасов журналирования log4x, поэтому будет применяться документация из log4j или log4net. Например, может помочь старое, но все еще актуальное log4j краткое руководство .

...