在 Node.js 中,可以使用第三方库 winston
或内置的 console
模块来设置日志格式。下面是两种方法的详细说明:
方法一:使用 Winston 库
npm install winston
logger.js
的文件,并在其中设置 Winston 日志格式:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
})
),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
new winston.transports.File({ filename: 'logs/combined.log' }),
],
});
module.exports = logger;
在这个例子中,我们使用了 winston.format.combine
方法来组合多个日志格式。winston.format.timestamp()
用于添加时间戳,winston.format.printf
用于自定义日志输出格式。
logger.js
文件:const logger = require('./logger');
logger.info('Hello, world!');
logger.error('An error occurred');
方法二:使用内置的 console 模块
在 Node.js 中,可以使用内置的 console
模块来记录日志。虽然它没有提供像 Winston 那样的格式化选项,但可以通过自定义函数来实现简单的格式化。
logger.js
的文件,并在其中设置自定义日志格式:function log(level, message) {
const timestamp = new Date().toISOString();
console.log(`[${timestamp}] ${level.toUpperCase()}: ${message}`);
}
module.exports = { log };
logger.js
文件:const { log } = require('./logger');
log('info', 'Hello, world!');
log('error', 'An error occurred');
这个例子中的 log
函数接受两个参数:日志级别(如 “info” 或 “error”)和日志消息。它会在控制台输出带有时间戳和日志级别的格式化消息。
这两种方法都可以帮助你设置 Node.js 日志格式。你可以根据自己的需求选择合适的方法。