debian

如何通过Node.js日志监控网络连接

小樊
51
2025-05-05 18:22:57
栏目: 编程语言

通过Node.js日志监控网络连接,可以采用以下几种方法:

1. 使用内置的console模块

Node.js内置的console模块可以用来记录日志。你可以使用console.logconsole.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/');
});

2. 使用第三方日志库

使用第三方日志库如winstonpino可以提供更强大的日志功能,包括日志级别、日志格式化、日志轮转等。

使用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/');
});

3. 监控网络连接状态

你可以使用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');
});

4. 使用监控工具

除了日志记录,你还可以使用一些监控工具来实时监控网络连接状态,如pm2nodemon等。

使用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应用的网络连接状态,并记录相关信息以便后续分析和调试。

0
看了该问题的人还看了