| 
					
				 | 
			
			
				@@ -71,8 +71,9 @@ req: ${JSON.stringify(Object.assign(client, newCommonInfo))}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 日志级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const methods: string[] = ['trace', 'debug', 'info', 'warn', 'error', 'fatal', 'mark']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// const methods: string[] = ['trace', 'debug', 'info', 'warn', 'error', 'fatal', 'mark']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const methodsAcc: string[] = ['trace', 'debug', 'info', 'warn']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const methodsErr: string[] = ['error', 'fatal', 'mark']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 默认配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const defaultConfig = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   logLevel: 'debug', // 日志级别 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,6 +81,36 @@ const defaultConfig = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   env: 'development' // 指定当前环境,当开发时控制台也输出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let logger: Logger = {} as Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let loggerErr: Logger = {} as Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export function formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export function formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  options?: { [key: string]: string|number }): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export function formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  options?: { [key: string]: string|number }): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let log: Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (methodsErr.includes(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      log = loggerErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      log = logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      log[type](formatOutputHandle(ctx, message, Object.assign({ ip: ctx.ip }, options))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      log[type](message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default class MyLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // log配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   logConfig = Object.assign({}, defaultConfig, config.logs); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,6 +122,7 @@ export default class MyLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   isDev = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // log4js实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   logger: Logger = {} as Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loggerErr: Logger = {} as Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,7 +149,20 @@ export default class MyLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 按日期进行输出log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         type: 'dateFile', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 路径和文件名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        filename: `${dir}/z`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        filename: `${dir}/access/z-acc`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pattern: 'yyyy-MM-dd.log', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        alwaysIncludePattern: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 日志输出格式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        layout: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: 'pattern', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] %c %m%n' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      error: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 按日期进行输出log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: 'dateFile', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 路径和文件名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        filename: `${dir}/error/z-err`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pattern: 'yyyy-MM-dd.log', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         alwaysIncludePattern: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 日志输出格式 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,7 +205,10 @@ export default class MyLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       pm2InstanceVar: 'INSTANCE_ID' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 初始化log4js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.logger = log4js.getLogger('log'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    logger = log4js.getLogger('log'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loggerErr = log4js.getLogger('error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.logger = logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.loggerErr = loggerErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   middleware(ctx: Context): InterfaceLog { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const $log: InterfaceLog = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -172,34 +220,51 @@ export default class MyLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       fatal: () => {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       mark: () => {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    methods.map(el => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    methodsAcc.map(el => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $log[el] = (message, options?: { [key: string]: string }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.logger[el](formatOutputHandle(ctx, message, Object.assign({ ip: ctx.ip }, options))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    methodsErr.map(el => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $log[el] = (message, options?: { [key: string]: string }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.loggerErr[el](formatOutputHandle( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ctx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          Object.assign({ ip: ctx.ip }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return $log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    options?: { [key: string]: string|number }): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    options?: { [key: string]: string|number }): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.logger[type](formatOutputHandle(ctx, message, Object.assign({ ip: ctx.ip }, options))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.logger[type](message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formatLog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // ): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   options?: { [key: string]: string|number }): void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // formatLog( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   this: MyLogger, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   type: 'trace'|'debug'|'info'|'warn'|'error'|'fatal'|'mark', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   message: string , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   ctx?: Context, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   options?: { [key: string]: string|number }): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     let log: Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     if (methodsErr.includes(type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       log = loggerErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       log = logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     if (ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       log[type](formatOutputHandle(ctx, message, Object.assign({ ip: ctx.ip }, options))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //       log[type](message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |