在 Node.js 中,可以使用第三方库 winston
或内置的 console
模块来配置日志输出格式。下面分别介绍这两种方法。
使用 Winston 库
首先,需要安装 winston
:
npm install winston
然后,创建一个日志配置文件(例如:logger.js
):
const { createLogger, format, transports } = require('winston'); const logger = createLogger({ level: 'info', format: format.combine( format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.printf(({ timestamp, level, message }) => { return `[${timestamp}] ${level.toUpperCase()}: ${message}`; }) ), transports: [ new transports.Console(), new transports.File({ filename: 'logs/error.log', level: 'error' }), new transports.File({ filename: 'logs/combined.log' }) ] }); module.exports = logger;
在这个例子中,我们配置了日志的时间戳格式、日志级别和日志输出格式。同时,我们将日志输出到控制台和两个不同的文件中。
接下来,在需要使用日志的地方引入 logger.js
:
const logger = require('./logger'); logger.info('This is an info message'); logger.error('This is an error message');
使用内置的 console 模块
Node.js 的内置 console
模块也支持自定义日志输出格式。例如:
function logInfo(message) {
console.log(`[${new Date().toISOString()}] INFO: ${message}`);
}
function logError(message) {
console.error(`[${new Date().toISOString()}] ERROR: ${message}`);
}
logInfo('This is an info message');
logError('This is an error message');
在这个例子中,我们定义了两个函数 logInfo
和 logError
,分别用于输出信息和错误日志。我们使用 Date
对象来生成时间戳,并自定义了日志输出格式。
这两种方法都可以实现自定义 Node.js 日志输出格式。你可以根据自己的需求选择合适的方法。