标签导航:

如何设置js日志级别

JavaScript中的日志记录通常借助console对象实现,它提供log、info、warn和error等方法,默认输出至浏览器控制台。然而,console对象本身并不支持日志级别设置。 我们可以通过自定义函数模拟日志级别功能,灵活控制输出信息。

以下示例演示如何自定义JS日志级别:

// 定义日志级别
const LogLevel = {
  OFF: 0,
  ERROR: 1,
  WARN: 2,
  INFO: 3,
  DEBUG: 4
};

// 设置当前日志级别
let currentLogLevel = LogLevel.INFO;

// 自定义日志函数
function log(level, message) {
  if (level >= currentLogLevel) {
    console[level === LogLevel.OFF ? 'log' : level](message); // 处理OFF级别
  }
}

// 使用自定义日志函数
log(LogLevel.DEBUG, '这是一条调试信息'); // 不会显示
log(LogLevel.INFO, '这是一条普通信息'); // 会显示
log(LogLevel.WARN, '这是一条警告信息'); // 会显示
log(LogLevel.ERROR, '这是一条错误信息'); // 会显示
log(LogLevel.OFF, '这是一条关闭级别的信息'); // 不会显示,但代码更健壮

代码首先定义了LogLevel对象,包含不同日志级别。currentLogLevel变量控制当前日志级别。log函数接收日志级别和消息,仅当级别高于或等于currentLogLevel时才输出。 改进后的代码更健壮地处理了LogLevel.OFF的情况。

通过修改currentLogLevel的值,例如设置为LogLevel.ERROR,即可只显示错误级别的日志。 需要注意的是,此方法仅控制输出,不会限制console对象本身的功能。 更高级的日志管理需求,建议使用如winston或loglevel等第三方库。