gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:45:57 26 4
gpt4 key购买 nike

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

最佳答案

我是 log4javascript 的作者,我每天都在工作中使用它。以下是我的使用方法:

  • 我倾向于最频繁地使用 debug()trace()。我使用 trace() 来记录低级别的操作,当我试图寻找错误时,使用 debug() 来记录程序流的更一般的日志。对于我通常的编码,我将控制台阈值设置为 DEBUG,这样我就不会在日志中出现困惑的跟踪消息,然后在需要查看时将其切换为 ALL跟踪消息。
  • 我经常使用 info(),通常是为了让特定消息在日志控制台中突出一点。
  • 我自由使用 group()(请参阅 http://log4javascript.org/docs/manual.html#loggers)对特定操作的日志进行分组,并允许我扩展和折叠日志 block 。组也可以嵌套。
  • 我将日志记录初始化代码放在一个地方,并为我的应用程序的每个组件提供一个单独的记录器(从根记录器继承)。这允许我为特定组件设置日志记录阈值。

例如:

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 short manual可能有帮助。

关于javascript - 如何有效地使用日志记录机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com