当前位置:首页 > JavaScript

js实现log

2026-02-01 16:50:27JavaScript

实现 JavaScript 的日志功能

在 JavaScript 中实现日志功能可以通过多种方式完成,以下是一些常见的方法:

使用 console 对象

JavaScript 内置了 console 对象,提供了多种日志输出方法:

console.log('普通日志信息');
console.info('提示性信息');
console.warn('警告信息');
console.error('错误信息');
console.debug('调试信息');

自定义日志函数

可以创建自定义的日志函数,增加更多控制功能:

function log(message, level = 'info') {
  const timestamp = new Date().toISOString();
  const levels = {
    error: '\x1b[31m', // 红色
    warn: '\x1b[33m',  // 黄色
    info: '\x1b[32m',  // 绿色
    debug: '\x1b[36m'  // 青色
  };
  const reset = '\x1b[0m';

  console.log(`${levels[level] || ''}[${timestamp}] [${level.toUpperCase()}] ${message}${reset}`);
}

log('这是一个信息', 'info');
log('这是一个警告', 'warn');
log('这是一个错误', 'error');

日志级别控制

可以添加日志级别控制,只输出特定级别以上的日志:

const LOG_LEVELS = {
  DEBUG: 0,
  INFO: 1,
  WARN: 2,
  ERROR: 3,
  NONE: 4
};

let currentLogLevel = LOG_LEVELS.INFO;

function setLogLevel(level) {
  currentLogLevel = LOG_LEVELS[level] ?? LOG_LEVELS.INFO;
}

function log(message, level = 'info') {
  if (LOG_LEVELS[level.toUpperCase()] >= currentLogLevel) {
    console.log(`[${level.toUpperCase()}] ${message}`);
  }
}

浏览器中的增强日志

在浏览器环境中,可以使用 CSS 样式增强日志输出:

console.log('%c重要信息', 'color: red; font-weight: bold; font-size: 16px;');
console.log('%c背景信息', 'background: #eee; color: #666; padding: 2px 5px;');

Node.js 中的日志

在 Node.js 环境中,可以使用专门的日志库如 winstonpino

// 使用 winston 示例
const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

logger.info('信息消息');
logger.error('错误消息');

性能日志

可以使用 console.timeconsole.timeEnd 记录性能:

console.time('耗时操作');
// 执行一些操作
console.timeEnd('耗时操作');

以上方法可以根据具体需求选择使用,简单的日志可以直接使用 console 对象,复杂的日志系统可以考虑使用专门的日志库。

js实现log

标签: jslog
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…