From 3cd5de38a3d03f22b81b5fde15691fa81d763495 Mon Sep 17 00:00:00 2001 From: Architecture Designer Date: Tue, 10 Mar 2026 09:09:54 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9E=B6=E6=9E=84:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=97=A5=E5=BF=97=E4=B8=AD=E9=97=B4=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/index.js | 2 ++ backend/src/middleware/logger.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 backend/src/middleware/logger.js diff --git a/backend/src/index.js b/backend/src/index.js index cfef857..6047f91 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -12,12 +12,14 @@ const trashRoutes = require('./routes/trash'); const statsRoutes = require('./routes/stats'); const recentRoutes = require('./routes/recent'); const errorHandler = require('./middleware/errorHandler'); +const logger = require('./middleware/logger'); const app = express(); const PORT = process.env.PORT || 3000; app.use(cors()); app.use(express.json()); +app.use(logger); app.use('/api/auth', authRoutes); app.use('/api/files', fileRoutes); diff --git a/backend/src/middleware/logger.js b/backend/src/middleware/logger.js new file mode 100644 index 0000000..05b8560 --- /dev/null +++ b/backend/src/middleware/logger.js @@ -0,0 +1,28 @@ +// 请求日志中间件 +const logger = (req, res, next) => { + const start = Date.now(); + + res.on('finish', () => { + const duration = Date.now() - start; + const log = { + method: req.method, + url: req.url, + status: res.statusCode, + duration: `${duration}ms`, + ip: req.ip, + userAgent: req.get('user-agent'), + timestamp: new Date().toISOString() + }; + + // 控制台输出 + if (log.status >= 400) { + console.error('[ERROR]', JSON.stringify(log)); + } else { + console.log('[INFO]', JSON.stringify(log)); + } + }); + + next(); +}; + +module.exports = logger;