如何有效地使用日志记录机制?

Ani*_*mde 5 javascript debugging logging log4javascript

我正在使用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

Tim*_*own 15

我是log4javascript的作者,我每天都在工作中使用它.这是我如何使用它:

  • 我倾向于使用debug()并且trace()最常使用.我trace()在尝试寻找一个bug时用于记录低级操作,并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
})();
Run Code Online (Sandbox Code Playgroud)

在日志记录初始化代码中:

// 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);
Run Code Online (Sandbox Code Playgroud)

这些东西对于所有log4x日志记录框架都是通用的,因此将适用来自log4j或log4net的文档.例如,旧的但仍然相关的log4j简短手册可能有所帮助.