在Debian上配置Node.js应用程序的日志级别,通常涉及以下几个步骤:
选择日志库:首先,你需要选择一个日志库。Node.js有许多流行的日志库,如winston、pino、morgan等。这里我们以winston为例。
安装日志库:如果你还没有安装winston,可以使用npm或yarn来安装它。
npm install winston
或者
yarn add winston
配置日志库:在你的Node.js应用程序中,配置winston以满足你的日志需求。以下是一个基本的配置示例:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info', // 设置默认日志级别
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }), // 只记录错误日志
new winston.transports.File({ filename: 'combined.log' }), // 记录所有级别的日志
],
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}
module.exports = logger;
设置环境变量:你可以通过设置环境变量来控制日志级别。例如,在启动应用程序时,可以设置NODE_ENV和自定义日志级别。
NODE_ENV=production LOG_LEVEL=info node app.js
在你的应用程序代码中,你可以读取这些环境变量并相应地配置日志级别:
const logger = require('./logger');
const logLevel = process.env.LOG_LEVEL || 'info';
logger.level = logLevel;
日志轮转:为了防止日志文件变得过大,你可以使用winston-daily-rotate-file库来实现日志轮转。
npm install winston-daily-rotate-file
然后在你的日志配置中添加轮转选项:
const { createLogger, format, transports } = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');
const logger = createLogger({
level: 'info',
format: format.json(),
transports: [
new DailyRotateFile({
filename: 'application-%DATE%.log',
datePattern: 'YYYY-MM-DD-HH',
zippedArchive: true,
maxSize: '20m',
maxFiles: '14d'
}),
],
});
module.exports = logger;
通过以上步骤,你可以在Debian上配置Node.js应用程序的日志级别,并确保日志文件得到适当的管理。