在 Node.js 中,可以使用内置的 console
模块来记录日志。console
模块提供了不同级别的日志方法,如 console.log()
、console.warn()
、console.error()
等。默认情况下,Node.js 只显示 console.error()
和 console.warn()
的输出,而 console.log()
和 console.info()
的输出会被忽略。
要设置 Node.js 的日志级别,可以使用第三方库,如 winston
或 bunyan
。这些库提供了更丰富的日志功能,包括日志级别、日志格式化和日志输出等。
以下是使用 winston
库设置日志级别的示例:
winston
库:npm install winston
logger.js
的文件,并添加以下代码:const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 设置日志级别为 '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;
在这个示例中,我们设置了日志级别为 info
,这意味着所有级别为 info
及以上的日志都会被记录。我们还定义了日志格式和传输方式,包括控制台输出和两个文件输出。
logger
:const logger = require('./logger');
logger.info('This is an info message');
logger.warn('This is a warning message');
logger.error('This is an error message');
现在,只有级别为 info
及以上的日志会被记录。你可以根据需要调整日志级别。例如,将日志级别设置为 error
,则只会记录错误日志:
const logger = require('./logger');
logger.level = 'error';
更多关于 winston
的信息和配置选项,请参考官方文档:https://github.com/winstonjs/winston。