当前位置:首页 > 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 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…