在Ubuntu中集成Node.js日志系統,可以使用一些流行的日志庫,如winston
或pino
。這些庫提供了靈活的日志記錄功能,包括日志級別、日志格式和日志傳輸等。以下是使用winston
和pino
的示例步驟:
安裝 Winston
首先,在你的Node.js項目中安裝winston
:
npm install winston
配置 Winston
創建一個日志配置文件,例如logger.js
:
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;
在應用中使用 Winston
在你的Node.js應用中引入并使用winston
:
const logger = require('./logger');
logger.info('Hello, world!');
logger.error('Something went wrong!');
安裝 Pino
在你的Node.js項目中安裝pino
:
npm install pino
配置 Pino
創建一個日志配置文件,例如logger.js
:
const pino = require('pino');
const prettyPrint = require('pino-pretty');
const logger = pino({
level: 'info',
transport: {
target: 'pino-pretty',
options: {
colorize: true,
translateTime: 'SYS:standard'
}
}
});
module.exports = logger;
在應用中使用 Pino
在你的Node.js應用中引入并使用pino
:
const logger = require('./logger');
logger.info('Hello, world!');
logger.error('Something went wrong!');
為了防止日志文件過大,可以使用winston-daily-rotate-file
或pino-rotate
等庫來實現日志輪轉。
安裝 Winston 日志輪轉
npm install winston-daily-rotate-file
配置 Winston 日志輪轉
修改logger.js
文件:
const winston = require('winston');
const { createLogger, format, transports } = winston;
const DailyRotateFile = require('winston-daily-rotate-file');
const transport = new DailyRotateFile({
filename: 'application-%DATE%.log',
datePattern: 'YYYY-MM-DD-HH',
zippedArchive: true,
maxSize: '20m',
maxFiles: '14d'
});
const logger = createLogger({
level: 'info',
format: format.combine(
format.timestamp(),
format.json()
),
transports: [
transport,
new transports.Console({
format: format.simple()
})
]
});
module.exports = logger;
通過以上步驟,你可以在Ubuntu中集成Node.js日志系統,并使用winston
或pino
來記錄和管理日志。