在 Node.js 中,可以使用第三方库 winston
或 morgan
来定制日志格式。这里分别介绍这两种方法。
winston
:npm install winston
logger.js
文件,并设置自定义日志格式: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}`;
})
);
const logger = createLogger({
level: 'info',
format: myFormat,
transports: [
new transports.Console(),
new transports.File({ filename: 'logs/app.log' })
]
});
module.exports = logger;
logger
:const logger = require('./logger');
logger.info('Hello, world!');
morgan
:npm install morgan
morgan
并设置自定义日志格式:const express = require('express');
const morgan = require('morgan');
const app = express();
const morganFormat = ':method :url :status :res[content-length] - :response-time ms :user-agent';
app.use(morgan(morganFormat, {
stream: {
write: (message) => {
console.log(`[${new Date().toISOString()}] ${message}`);
}
}
}));
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
这样,你就可以根据自己的需求定制 Node.js 应用的日志格式了。