5

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

1 回答 1

15

我是 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 简短手册可能会有所帮助。

于 2011-02-02T10:18:58.980 回答