温馨提示×

Node.js应用在Ubuntu上日志级别设置

小樊
40
2025-07-04 23:58:31
栏目: 编程语言

在Node.js应用中,可以通过多种方式设置日志级别。以下是一些常见的方法:

1. 使用console模块

Node.js内置的console模块提供了基本的日志功能,可以通过不同的方法来控制日志级别。

console.log('This is a log message'); // 默认日志级别 console.info('This is an info message'); // 信息级别 console.warn('This is a warning message'); // 警告级别 console.error('This is an error message'); // 错误级别 

2. 使用第三方日志库

有许多第三方日志库可以帮助你更好地管理日志级别,例如winstonpino

使用winston

winston是一个非常流行的日志库,支持多种传输方式和日志级别。

首先,安装winston

npm install winston 

然后,在你的应用中使用winston

const winston = require('winston'); const logger = winston.createLogger({ level: 'info', // 设置默认日志级别 format: winston.format.json(), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ], }); // 设置特定模块的日志级别 logger.level = 'debug'; 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'); 

使用pino

pino是另一个高性能的日志库,也支持多种日志级别。

首先,安装pino

npm install pino 

然后,在你的应用中使用pino

const pino = require('pino'); const logger = pino({ level: 'info', // 设置默认日志级别 }); logger.info('This is an info message'); logger.warn('This is a warning message'); logger.error('This is an error message'); 

3. 使用环境变量

你也可以通过环境变量来设置日志级别。

const winston = require('winston'); const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', // 从环境变量读取日志级别 format: winston.format.json(), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ], }); 

在启动应用时,可以通过设置环境变量来控制日志级别:

LOG_LEVEL=debug node app.js 

4. 使用配置文件

你还可以使用配置文件来管理日志级别。

首先,创建一个配置文件config.json

{ "logLevel": "info" } 

然后,在你的应用中读取配置文件:

const winston = require('winston'); const config = require('./config.json'); const logger = winston.createLogger({ level: config.logLevel, format: winston.format.json(), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ], }); 

通过这些方法,你可以在Node.js应用中灵活地设置和管理日志级别。

0