在Linux系統中,使用Node.js自定義日志格式可以通過多種方式實現。以下是兩種常見的方法:
morgan
中間件morgan
是一個流行的HTTP請求日志中間件,可以方便地自定義日志格式。
安裝morgan
:
npm install morgan
在Node.js應用中使用morgan
:
const express = require('express');
const morgan = require('morgan');
const app = express();
// 自定義日志格式
morgan.token('customFormat', function (req, res) {
return `${req.method} ${req.url} ${res.statusCode} ${req.ip} - ${req.headers['user-agent']}`;
});
// 使用自定義格式
app.use(morgan('customFormat'));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
winston
日志庫winston
是一個功能強大的日志庫,支持多種傳輸方式和自定義格式。
安裝winston
:
npm install winston
配置winston
日志格式:
const winston = require('winston');
// 創建一個自定義的日志格式
const customFormat = winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
);
// 創建一個logger實例
const logger = winston.createLogger({
level: 'info',
format: customFormat,
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
new winston.transports.File({ filename: 'logs/combined.log' })
]
});
// 使用logger記錄日志
logger.info('Hello World!');
logger.error('Something went wrong!');
morgan
:適用于簡單的HTTP請求日志記錄,易于集成和使用。winston
:適用于更復雜的日志需求,支持多種傳輸方式和自定義格式,功能更強大。根據你的具體需求選擇合適的工具來定制日志格式。