在 Node.js 中,可以使用第三方庫如 winston
或 morgan
來自定義日志格式。下面是使用這兩個庫的示例:
winston
庫自定義日志格式:首先,安裝 winston
:
npm install winston
然后,創建一個 logger.js
文件,并添加以下代碼:
const { createLogger, format, transports } = require('winston');
const myFormat = format.combine(
format.timestamp(),
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;
在這個例子中,我們定義了一個名為 myFormat
的自定義格式,它包含時間戳、日志級別和消息。然后,我們將這個格式傳遞給 createLogger
函數。
現在,你可以在你的應用程序中使用這個自定義日志記錄器:
const logger = require('./logger');
logger.info('Hello, world!');
morgan
庫自定義日志格式:首先,安裝 morgan
:
npm install morgan
然后,在你的應用程序中使用 morgan
:
const express = require('express');
const morgan = require('morgan');
const app = express();
const myFormat = ':method :url :status :res[content-length] - :response-time ms - :message';
app.use(morgan(myFormat));
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在這個例子中,我們定義了一個名為 myFormat
的自定義格式,它包含請求方法、URL、狀態碼、響應內容長度、響應時間和消息。然后,我們將這個格式傳遞給 morgan
中間件。
現在,當你訪問應用程序時,日志將按照自定義格式顯示。
這兩個示例展示了如何在 Node.js 中使用第三方庫自定義日志格式。你可以根據自己的需求調整格式和選項。