|
@@ -1,6 +1,6 @@
|
|
|
import log4js from 'log4js';
|
|
|
import path from 'path';
|
|
|
-
|
|
|
+import { Context } from 'koa';
|
|
|
import config from '../config';
|
|
|
|
|
|
// 输出配置
|
|
@@ -37,7 +37,7 @@ req: ${JSON.stringify(Object.assign(client, commonInfo))}`;
|
|
|
return text;
|
|
|
};
|
|
|
// 日志级别
|
|
|
-const methods = ['trace', 'debug', 'info', 'warn', 'error', 'fatal', 'mark'];
|
|
|
+const methods: string[] = ['trace', 'debug', 'info', 'warn', 'error', 'fatal', 'mark'];
|
|
|
|
|
|
// 默认配置
|
|
|
const defaultConfig = {
|
|
@@ -114,7 +114,38 @@ log4js.configure({
|
|
|
pm2InstanceVar: 'INSTANCE_ID'
|
|
|
});
|
|
|
// 初始化log4js
|
|
|
-export const logger = log4js.getLogger('log');
|
|
|
+const logger = log4js.getLogger('log');
|
|
|
+
|
|
|
+interface logFn {
|
|
|
+ (message: any, ...args: any[]): void;
|
|
|
+}
|
|
|
+interface interfaceLog {
|
|
|
+ trace: logFn
|
|
|
+ debug: logFn
|
|
|
+ info: logFn
|
|
|
+ warn: logFn
|
|
|
+ error: logFn
|
|
|
+ fatal: logFn
|
|
|
+ mark: logFn
|
|
|
+}
|
|
|
+
|
|
|
+export const loggerInstance = (ctx: Context): interfaceLog => {
|
|
|
+ const $log: interfaceLog = {
|
|
|
+ trace: () => {},
|
|
|
+ debug: () => {},
|
|
|
+ info: () => {},
|
|
|
+ warn: () => {},
|
|
|
+ error: () => {},
|
|
|
+ fatal: () => {},
|
|
|
+ mark: () => {}
|
|
|
+ };
|
|
|
+ methods.map(el => {
|
|
|
+ $log[el] = (message) => {
|
|
|
+ logger[el](output(ctx, message, { serverIp }));
|
|
|
+ };
|
|
|
+ });
|
|
|
+ return $log;
|
|
|
+}
|
|
|
|
|
|
export const middlewareLog = () => {
|
|
|
// koa上下文存放的log输出方法
|