js实现log
JavaScript 实现日志功能
使用 console.log 是最常见的日志输出方式,适用于浏览器和 Node.js 环境。
console.log('This is a log message');
自定义日志函数
可以封装一个自定义日志函数,增加时间戳或其他信息。
function log(message) {
const timestamp = new Date().toISOString();
console.log(`[${timestamp}] ${message}`);
}
log('Custom log message');
日志级别
实现不同级别的日志,如 debug、info、warn、error。
const logger = {
debug: (message) => console.debug(`[DEBUG] ${message}`),
info: (message) => console.info(`[INFO] ${message}`),
warn: (message) => console.warn(`[WARN] ${message}`),
error: (message) => console.error(`[ERROR] ${message}`)
};
logger.debug('Debug message');
logger.info('Info message');
logger.warn('Warning message');
logger.error('Error message');
日志存储
将日志输出到文件或远程服务器,适用于 Node.js。
const fs = require('fs');
function logToFile(message) {
const timestamp = new Date().toISOString();
const logMessage = `[${timestamp}] ${message}\n`;
fs.appendFile('app.log', logMessage, (err) => {
if (err) console.error('Failed to write log:', err);
});
}
logToFile('Log message to file');
第三方日志库
使用成熟的日志库如 winston 或 pino 提供更多功能。
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('Info message with winston');
logger.error('Error message with winston');
浏览器控制台增强
在浏览器中使用 console 对象的其他方法增强日志。

console.group('User Details');
console.log('Name: John Doe');
console.log('Age: 30');
console.groupEnd();
console.table([{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }]);






