Просмотр исходного кода

优化错误日志和自动清理文件日志

shaogen1995 недель назад: 4
Родитель
Сommit
6534025afa

+ 0 - 0
src/config/access.log


+ 1 - 1
src/config/config.default.ts

@@ -22,7 +22,7 @@ const buildUrl =
   'mongodb://root:4Dkk2021testproject%25@127.0.0.1:27017/anHui_guoJiaTongBuFuShe?authSource=admin';
 
 // 上传静态文件的目录
-export const upStaticFileUrl = '/data/data/museum_anhui_hefei_guojia_tongbufusheshiyanshi_data/';
+export const upStaticFileUrl = '/data/data/museum_anhui_hefei_guojia_tongbufusheshiyanshi_data';
 
 // 写入日志路径
 export const writeLogUrl = '/data/data/node_porject/museum_anhui_hefei_guojia_tongbufusheshiyanshi';

+ 3 - 0
src/controller/userController.ts

@@ -74,6 +74,9 @@ const user = {
 
             loginFlag[clientIp].loginFlagNum = 0;
             loginFlag[clientIp].loginFlagTime = 0;
+
+            delete loginFlag[clientIp];
+
             const dbUserJson: any = dbUser.toObject();
             delete dbUserJson.passWord;
 

+ 1 - 1
src/middleware/fileUpload.ts

@@ -16,7 +16,7 @@ const storage = multer.diskStorage({
 
     // 针对 本地和 生产 生成不同路径的静态文件
     if (isEnv) baseDir = 'uploads';
-    else baseDir = upStaticFileUrl + 'uploads';
+    else baseDir = upStaticFileUrl + '/uploads';
 
     const targetDir = path.join(baseDir, upPath || 'default');
 

+ 12 - 2
src/middleware/index.ts

@@ -1,5 +1,5 @@
 import { isEnv, writeLogUrl } from '../config/config.default.js';
-import { AddTxtFileFu } from '../util/index.js';
+import { AddTxtFileFu, ipLocResFu } from '../util/index.js';
 import resSend from '../util/resSend.js';
 
 // 一些简单的中间件
@@ -22,7 +22,17 @@ export const errorHandler = (err: any, req: any, res: any, next: any) => {
   // 记录错误日志,便于后端排查
   // console.error('错误处理中间件捕获到异常:', err);
 
-  if (!isEnv) AddTxtFileFu(writeLogUrl, 'config/access.log', err);
+  if (!isEnv) {
+    const obj: any = {
+      method: req.method,
+      url: req.originalUrl,
+      userName: req.userName || req.user.userName || '-',
+      apiDescription: req.apiDescription || '',
+      ip: ipLocResFu(req), // 获取IP
+      userAgent: req.get('User-Agent'), // 获取User-Agent
+    };
+    AddTxtFileFu(writeLogUrl, '/config/err.log', `${JSON.stringify(obj)}-----${err}`);
+  }
 
   // 设置默认错误状态码和消息
   const statusCode = err.statusCode || 500;

+ 5 - 4
src/util/clearAll.ts

@@ -89,13 +89,13 @@ export const clearFileFu = async (Model: any) => {
     if (!isEnv)
       AddTxtFileFu(
         writeLogUrl,
-        'config/access.log',
+        '/config/clearFile.log',
         `- 成功删除静态文件并移除数据库记录:${deleteResult.deletedCount} 条`
       );
     if (!isEnv)
       AddTxtFileFu(
         writeLogUrl,
-        'config/access.log',
+        '/config/clearFile.log',
         `- 静态文件删除失败(数据库记录保留): ${failedFileDeletions.length} 条`
       );
 
@@ -103,12 +103,13 @@ export const clearFileFu = async (Model: any) => {
       if (!isEnv)
         AddTxtFileFu(
           writeLogUrl,
-          'config/access.log',
+          '/config/clearFile.log',
           `以下记录的静态文件可能需要手动处理:${failedFileDeletions}`
         );
     }
   } catch (error) {
-    if (!isEnv) AddTxtFileFu(writeLogUrl, 'config/access.log', `清理过程中发生未知错误${error}`);
+    if (!isEnv)
+      AddTxtFileFu(writeLogUrl, '/config/clearFile.log', `清理过程中发生未知错误${error}`);
   }
 };
 

+ 1 - 1
src/util/index.ts

@@ -55,7 +55,7 @@ export const AddTxtFileFu = (nowPath: any, fileName: string, content: string) =>
   const filePath = path.join(nowPath, fileName);
 
   // 在要追加的内容末尾加上换行符 `\n`
-  const dataToAppend = dayjs().format('YYYY-MM-DD HH:mm:ss') + content + '\n';
+  const dataToAppend = dayjs().format('YYYY-MM-DD HH:mm:ss') + '------' + content + '\n';
   fs.appendFile(filePath, dataToAppend, 'utf8', (err) => {
     if (err) {
       return;