Browse Source

🎈 perf(Logger): 美化日志输出的样式

对不同级别的日志颜色进行了更改
Pchen. 8 months ago
parent
commit
2433aaa419
3 changed files with 23 additions and 4 deletions
  1. 1 0
      .gitignore
  2. 21 3
      lib/Logger.js
  3. 1 1
      package.json

+ 1 - 0
.gitignore

@@ -1,2 +1,3 @@
 node_modules/
 *.log
+config.json

+ 21 - 3
lib/Logger.js

@@ -1,5 +1,6 @@
 const fs = require('fs');
 const path = require('path');
+const chalk = require('chalk');
 
 class Logger {
     constructor(logFilePath = null, level = 'INFO') {
@@ -20,11 +21,28 @@ class Logger {
         level = level.toUpperCase();
         if (this.logLevels.indexOf(level) >= this.logLevels.indexOf(this.level)) {
             const timestamp = new Date().toISOString();
-            const logMessage = `${timestamp} [${level}] ${message}\n`;
+            const logMessage = `${timestamp} [${level}] ${message}`;
+
+            // 控制台颜色
+            let coloredMessage;
+            switch (level) {
+                case 'INFO':
+                    coloredMessage = chalk.white(logMessage);
+                    break;
+                case 'WARN':
+                    coloredMessage = chalk.yellow(logMessage);
+                    break;
+                case 'ERROR':
+                    coloredMessage = chalk.red(logMessage);
+                    break;
+                default:
+                    coloredMessage = logMessage;
+            }
+
+            console.log(coloredMessage);
 
-            console.log(logMessage.trim());
             if (this.logFilePath) {
-                fs.appendFile(this.logFilePath, logMessage, (err) => {
+                fs.appendFile(this.logFilePath, `${logMessage}\n`, (err) => {
                     if (err) throw err;
                 });
             }

+ 1 - 1
package.json

@@ -11,10 +11,10 @@
   "dependencies": {
     "axios": "^1.7.4",
     "body-parser": "^1.20.2",
+    "chalk": "^4.1.2",
     "cors": "^2.8.5",
     "express": "^4.19.2",
     "md5": "^2.3.0",
-    "mysql": "^2.18.1",
     "mysql2": "^3.11.0"
   }
 }