在Debian系统上,Node.js应用程序的日志格式化可以通过多种日志库来实现,以下是一些常用的方法和步骤:
npm install winston
const { createLogger, format, transports } = require('winston');
// 定义自定义格式
const myFormat = format.combine(
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
})
);
// 创建logger实例
const logger = createLogger({
level: 'info',
format: myFormat,
transports: [
new transports.Console(), // 可以添加更多传输方式,如文件、HTTP等
new transports.File({ filename: 'app.log' })
]
});
// 使用logger
logger.info('这是一条信息日志');
logger.error('这是一条错误日志');
在您的Node.js应用程序中,导入并使用自定义日志记录器。
const logger = require('./logger');
logger.info('应用启动成功');
logger.error('发生错误!');
npm install morgan
const express = require('express');
const morgan = require('morgan');
const app = express();
// 自定义morgan日志格式
morgan.token('customFormat', (req, res) => {
return `${req.method} ${req.url} - ${res.statusCode}`;
});
app.use(morgan('customFormat'));
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
如果不需要复杂的日志管理,可以使用Node.js内置的console模块结合第三方库来格式化日志。
npm install chalk moment
const chalk = require('chalk');
const moment = require('moment');
function log(level, message) {
const timestamp = moment().format('YYYY-MM-DD HH:mm:ss');
const color = { info: chalk.blue, warn: chalk.yellow, error: chalk.red }[level];
console.log(color(timestamp)[level.toUpperCase()]: chalk.white(message));
}
// 使用自定义日志函数
log('info', '这是一条信息日志');
log('error', '这是一条错误日志');
以上方法可以帮助您在Debian系统上为Node.js应用程序配置日志记录,以便于问题追踪和性能监控。