gemercheung 3 years ago
parent
commit
8fe30ae78c
4 changed files with 51 additions and 10 deletions
  1. 1 0
      .gitignore
  2. 2 1
      package.json
  3. 20 8
      src/logConfig.ts
  4. 28 1
      yarn.lock

+ 1 - 0
.gitignore

@@ -5,6 +5,7 @@ config.yaml
 
 # Logs
 logs
+log
 *.log
 npm-debug.log*
 pnpm-debug.log*

+ 2 - 1
package.json

@@ -73,7 +73,8 @@
     "ts-loader": "^9.2.3",
     "ts-node": "^10.0.0",
     "tsconfig-paths": "^3.10.1",
-    "typescript": "^4.3.5"
+    "typescript": "^4.3.5",
+    "winston-daily-rotate-file": "^4.7.1"
   },
   "jest": {
     "moduleFileExtensions": [

+ 20 - 8
src/logConfig.ts

@@ -2,6 +2,7 @@ import { utilities as nestWinstonModuleUtilities } from 'nest-winston';
 import * as winston from 'winston';
 import { join } from 'path';
 import configuration from 'src/config/configuration';
+import 'winston-daily-rotate-file';
 
 let logDir: string;
 if (process.env.NODE_ENV === 'development') {
@@ -14,6 +15,16 @@ if (process.env.NODE_ENV === 'production') {
 }
 console.log('logDir', logDir);
 
+const dateTransport = new winston.transports.DailyRotateFile({
+  level: 'verbose',
+  dirname: logDir,
+  filename: 'metaverse-%DATE%.log',
+  datePattern: 'YYYY-MM-DD-HH',
+  zippedArchive: true,
+  maxSize: '20m',
+  maxFiles: '14d',
+});
+
 const levels = {
   levels: {
     error: 0,
@@ -30,7 +41,7 @@ export const LoggerConfig = {
   format: winston.format.combine(
     winston.format.ms(),
     winston.format.timestamp({
-      format: 'YYYY-MM-DD HH:mm:ss SSS',
+      format: 'YYYY-MM-DD HH:mm:ss:SSS',
     }),
     winston.format.metadata({
       fillExcept: ['message', 'level', 'timestamp', 'label', 'uid', 'rid'],
@@ -39,8 +50,7 @@ export const LoggerConfig = {
     winston.format.printf(
       (info) =>
         // eslint-disable-next-line prettier/prettier
-        `${info.timestamp} [${info.level}] ${info.uid ? `[${info.uid}]` : ''} ${
-          info.context || ''
+        `${info.timestamp} [${info.level}] ${info.uid ? `[${info.uid}]` : ''} ${info.context || ''
         }: ${info.message}`,
     ),
     // nestWinstonModuleUtilities.format.nestLike('Meta-server', {
@@ -49,6 +59,7 @@ export const LoggerConfig = {
   ),
   exitOnError: false,
   transports: [
+    dateTransport,
     new winston.transports.Console(),
     // new winston.transports.File({
     //   dirname: logDir, //path to where save loggin result
@@ -60,11 +71,7 @@ export const LoggerConfig = {
     //   filename: 'combine.log', //name of file where will be saved logging result
     //   level: 'log',
     // }),
-    // new winston.transports.File({
-    //   dirname: logDir,
-    //   filename: 'error.log',
-    //   level: 'error',
-    // }),
+
     new winston.transports.File({
       dirname: logDir,
       filename: 'combine.log',
@@ -80,5 +87,10 @@ export const LoggerConfig = {
       filename: 'bootsrap.log',
       level: 'warn',
     }),
+    new winston.transports.File({
+      dirname: logDir,
+      filename: 'error.log',
+      level: 'error',
+    }),
   ],
 };

+ 28 - 1
yarn.lock

@@ -2897,6 +2897,13 @@ file-entry-cache@^6.0.1:
   dependencies:
     flat-cache "^3.0.4"
 
+file-stream-rotator@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.npmmirror.com/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz#007019e735b262bb6c6f0197e58e5c87cb96cec3"
+  integrity sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==
+  dependencies:
+    moment "^2.29.1"
+
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz"
@@ -4340,6 +4347,11 @@ mkdirp@^0.5.4:
   dependencies:
     minimist "^1.2.6"
 
+moment@^2.29.1:
+  version "2.29.4"
+  resolved "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
+  integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
+
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
@@ -4539,6 +4551,11 @@ object-hash@3.0.0:
   resolved "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz"
   integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
 
+object-hash@^2.0.1:
+  version "2.2.0"
+  resolved "https://registry.npmmirror.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
+  integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+
 object-inspect@^1.9.0:
   version "1.12.0"
   resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz"
@@ -6060,7 +6077,17 @@ windows-release@^4.0.0:
   dependencies:
     execa "^4.0.2"
 
-winston-transport@^4.5.0:
+winston-daily-rotate-file@^4.7.1:
+  version "4.7.1"
+  resolved "https://registry.npmmirror.com/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz#f60a643af87f8867f23170d8cd87dbe3603a625f"
+  integrity sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==
+  dependencies:
+    file-stream-rotator "^0.6.1"
+    object-hash "^2.0.1"
+    triple-beam "^1.3.0"
+    winston-transport "^4.4.0"
+
+winston-transport@^4.4.0, winston-transport@^4.5.0:
   version "4.5.0"
   resolved "https://registry.npmmirror.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
   integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==