在 Node.js 中,可以使用第三方库 winston 或内置的 console 模块来设置日志记录级别。下面是两种方法的详细说明:
方法一:使用 winston 库
winston 库。如果没有,请运行以下命令进行安装:npm install winston
logger.js 的文件,并在其中设置日志记录级别:const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 设置日志记录级别,可选值:'error', 'warn', 'info', 'verbose', 'debug', 'silly'
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;
logger.js 并使用它记录日志:const logger = require('./logger');
logger.debug('This is a debug message');
logger.info('This is an info message');
logger.warn('This is a warning message');
logger.error('This is an error message');
方法二:使用内置的 console 模块
Node.js 的内置 console 模块本身不支持设置日志记录级别,但可以通过自定义函数来实现:
const levels = {
error: 0,
warn: 1,
info: 2,
log: 3,
};
function log(level, message) {
if (levels[level] >= levels.info) {
console.log(`[${new Date().toISOString()}] ${level.toUpperCase()}: ${message}`);
}
}
log('error', 'This is an error message');
log('warn', 'This is a warning message');
log('info', 'This is an info message');
在这个例子中,只有 info 级别及以上的日志会被记录。可以根据需要调整 levels 对象中的级别值来设置不同的日志记录级别。