通过Node.js日志监控网络连接,可以采用以下几种方法:
console
模块Node.js内置的console
模块可以用来记录日志。你可以使用console.log
、console.error
等方法来记录网络连接的相关信息。
const http = require('http');
const server = http.createServer((req, res) => {
console.log(`Request received: ${req.url}`);
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
使用第三方日志库如winston
或pino
可以提供更强大的日志功能,包括日志级别、日志格式化、日志轮转等。
winston
const winston = require('winston');
const http = require('http');
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()
}));
}
const server = http.createServer((req, res) => {
logger.info(`Request received: ${req.url}`);
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
logger.info('Server running at http://localhost:3000/');
});
pino
const pino = require('pino');
const http = require('http');
const logger = pino({
level: 'info'
});
const server = http.createServer((req, res) => {
logger.info({ url: req.url }, 'Request received');
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
logger.info('Server running at http://localhost:3000/');
});
你可以使用Node.js的net
模块来监控网络连接状态,并记录相关信息。
const net = require('net');
const logger = pino({ level: 'info' });
const server = net.createServer((socket) => {
logger.info('Client connected');
socket.on('data', (data) => {
logger.info(`Data received: ${data}`);
});
socket.on('end', () => {
logger.info('Client disconnected');
});
socket.on('error', (err) => {
logger.error(`Socket error: ${err.message}`);
});
});
server.listen(3000, () => {
logger.info('Server listening on port 3000');
});
除了日志记录,你还可以使用一些监控工具来实时监控网络连接状态,如pm2
、nodemon
等。
pm2
pm2
是一个进程管理器,可以用来监控和管理Node.js应用。
npm install pm2 -g
pm2 start app.js --name my-app
pm2 logs my-app
nodemon
nodemon
是一个工具,可以在文件变化时自动重启Node.js应用。
npm install nodemon -g
nodemon app.js
通过这些方法,你可以有效地监控Node.js应用的网络连接状态,并记录相关信息以便后续分析和调试。