当前位置:首页 > 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');

日志级别控制

js实现log

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

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 样式增强日志输出:

js实现log

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 对象,复杂的日志系统可以考虑使用专门的日志库。

标签: jslog
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

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

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…