Showing
2 changed files
with
87 additions
and
14 deletions
| @@ -22,6 +22,11 @@ export class Logger { | @@ -22,6 +22,11 @@ export class Logger { | ||
| 22 | private static domain: number = 0xFF00; | 22 | private static domain: number = 0xFF00; |
| 23 | private static prefix: string = 'SightApp'; | 23 | private static prefix: string = 'SightApp'; |
| 24 | private static format: string = `%{public}s, %{public}s`; | 24 | private static format: string = `%{public}s, %{public}s`; |
| 25 | + private static format_ext: string = `%{public}s`; | ||
| 26 | + /** | ||
| 27 | + * 暂时没找到限制大小相关文档,尝试4000是不行的,3500可以。可以后续优化 | ||
| 28 | + */ | ||
| 29 | + private static CHUNK_SIZE: number = 3500; | ||
| 25 | static isDebug: boolean = true; | 30 | static isDebug: boolean = true; |
| 26 | 31 | ||
| 27 | /** | 32 | /** |
| @@ -36,46 +41,113 @@ export class Logger { | @@ -36,46 +41,113 @@ export class Logger { | ||
| 36 | } | 41 | } |
| 37 | 42 | ||
| 38 | static debug(...args: string[]) { | 43 | static debug(...args: string[]) { |
| 39 | - if(!Logger.isDebug){ | 44 | + if (!Logger.isDebug) { |
| 40 | return | 45 | return |
| 41 | } | 46 | } |
| 42 | - hilog.debug(Logger.domain, Logger.prefix, Logger.format, args); | 47 | + Logger.logContent(LogLevel.DEBUG, ...args) |
| 43 | } | 48 | } |
| 44 | 49 | ||
| 45 | static info(...args: string[]) { | 50 | static info(...args: string[]) { |
| 46 | - if(!Logger.isDebug){ | 51 | + if (!Logger.isDebug) { |
| 47 | return | 52 | return |
| 48 | } | 53 | } |
| 49 | - hilog.info(Logger.domain, Logger.prefix, Logger.format, args); | 54 | + Logger.logContent(LogLevel.INFO, ...args) |
| 50 | } | 55 | } |
| 51 | 56 | ||
| 52 | static warn(...args: string[]) { | 57 | static warn(...args: string[]) { |
| 53 | - if(!Logger.isDebug){ | 58 | + if (!Logger.isDebug) { |
| 54 | return | 59 | return |
| 55 | } | 60 | } |
| 56 | - hilog.warn(Logger.domain, Logger.prefix, Logger.format, args); | 61 | + Logger.logContent(LogLevel.WARN, ...args) |
| 57 | } | 62 | } |
| 58 | 63 | ||
| 59 | static error(...args: string[]) { | 64 | static error(...args: string[]) { |
| 60 | - if(!Logger.isDebug){ | 65 | + if (!Logger.isDebug) { |
| 61 | return | 66 | return |
| 62 | } | 67 | } |
| 63 | - hilog.error(Logger.domain, Logger.prefix, Logger.format, args); | 68 | + Logger.logContent(LogLevel.ERROR, ...args) |
| 64 | } | 69 | } |
| 65 | 70 | ||
| 66 | static fatal(...args: string[]) { | 71 | static fatal(...args: string[]) { |
| 67 | - if(!Logger.isDebug){ | 72 | + if (!Logger.isDebug) { |
| 68 | return | 73 | return |
| 69 | } | 74 | } |
| 70 | - hilog.fatal(Logger.domain, Logger.prefix, Logger.format, args); | 75 | + Logger.logContent(LogLevel.FATAL, ...args) |
| 71 | } | 76 | } |
| 72 | 77 | ||
| 73 | static isLoggable(level: LogLevel) { | 78 | static isLoggable(level: LogLevel) { |
| 74 | - if(!Logger.isDebug){ | 79 | + if (!Logger.isDebug) { |
| 75 | return | 80 | return |
| 76 | } | 81 | } |
| 82 | + // 判断是否打印 TODO | ||
| 77 | hilog.isLoggable(Logger.domain, Logger.prefix, level); | 83 | hilog.isLoggable(Logger.domain, Logger.prefix, level); |
| 78 | } | 84 | } |
| 85 | + | ||
| 86 | + static logContent(level: LogLevel, ...args: string[]) { | ||
| 87 | + let msg = Logger.getMsg(...args) | ||
| 88 | + let length = msg.length | ||
| 89 | + if (length < Logger.CHUNK_SIZE) { | ||
| 90 | + // 不超限,保持原来的打印 | ||
| 91 | + Logger.print(level, ...args) | ||
| 92 | + } else { | ||
| 93 | + // 超限,分段打印 | ||
| 94 | + for (let i = 0; i < length; i += Logger.CHUNK_SIZE) { | ||
| 95 | + let count = Math.min(length - i, Logger.CHUNK_SIZE); | ||
| 96 | + Logger.printExt(level, msg.substring(i, i + count)); | ||
| 97 | + } | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + static print(level: LogLevel, ...msg: string[]) { | ||
| 102 | + switch (level) { | ||
| 103 | + case LogLevel.DEBUG: | ||
| 104 | + hilog.debug(Logger.domain, Logger.prefix, Logger.format, msg); | ||
| 105 | + break | ||
| 106 | + case LogLevel.INFO: | ||
| 107 | + hilog.info(Logger.domain, Logger.prefix, Logger.format, msg); | ||
| 108 | + break | ||
| 109 | + case LogLevel.WARN: | ||
| 110 | + hilog.warn(Logger.domain, Logger.prefix, Logger.format, msg); | ||
| 111 | + break | ||
| 112 | + case LogLevel.ERROR: | ||
| 113 | + hilog.error(Logger.domain, Logger.prefix, Logger.format, msg); | ||
| 114 | + break | ||
| 115 | + case LogLevel.FATAL: | ||
| 116 | + hilog.fatal(Logger.domain, Logger.prefix, Logger.format, msg); | ||
| 117 | + break | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + static printExt(level: LogLevel, msg: string) { | ||
| 122 | + switch (level) { | ||
| 123 | + case LogLevel.DEBUG: | ||
| 124 | + hilog.debug(Logger.domain, Logger.prefix, Logger.format_ext, msg); | ||
| 125 | + break | ||
| 126 | + case LogLevel.INFO: | ||
| 127 | + hilog.info(Logger.domain, Logger.prefix, Logger.format_ext, msg); | ||
| 128 | + break | ||
| 129 | + case LogLevel.WARN: | ||
| 130 | + hilog.warn(Logger.domain, Logger.prefix, Logger.format_ext, msg); | ||
| 131 | + break | ||
| 132 | + case LogLevel.ERROR: | ||
| 133 | + hilog.error(Logger.domain, Logger.prefix, Logger.format_ext, msg); | ||
| 134 | + break | ||
| 135 | + case LogLevel.FATAL: | ||
| 136 | + hilog.fatal(Logger.domain, Logger.prefix, Logger.format_ext, msg); | ||
| 137 | + break | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + static getMsg(...args: string[]): string { | ||
| 142 | + if (args == null || args.length <= 0) { | ||
| 143 | + return ''; | ||
| 144 | + } | ||
| 145 | + let msg = '' | ||
| 146 | + args.forEach((v) => { | ||
| 147 | + msg = msg.concat(', ').concat(v) | ||
| 148 | + }) | ||
| 149 | + return msg.substring(2, msg.length); | ||
| 150 | + } | ||
| 79 | } | 151 | } |
| 80 | 152 | ||
| 81 | export default new Logger('SightApp', 0xFF00) | 153 | export default new Logger('SightApp', 0xFF00) |
| @@ -38,6 +38,7 @@ instance.interceptors.request.use( | @@ -38,6 +38,7 @@ instance.interceptors.request.use( | ||
| 38 | } | 38 | } |
| 39 | // 公共请求参数 | 39 | // 公共请求参数 |
| 40 | // config.params.key = key | 40 | // config.params.key = key |
| 41 | + Logger.debug('HttpRequest', 'request: ' + config.url) | ||
| 41 | return config; | 42 | return config; |
| 42 | }, | 43 | }, |
| 43 | (error: AxiosError) => { | 44 | (error: AxiosError) => { |
| @@ -85,9 +86,9 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r | @@ -85,9 +86,9 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r | ||
| 85 | // return Promise.reject(new Error(message)) | 86 | // return Promise.reject(new Error(message)) |
| 86 | // } | 87 | // } |
| 87 | // const data: ResponseBean<any> = response.data | 88 | // const data: ResponseBean<any> = response.data |
| 88 | - Logger.debug('HttpRequest', 'response ======start======= ') | 89 | + Logger.debug('HttpRequest', 'response ==============start=================') |
| 89 | Logger.debug('HttpRequest', 'response: ' + JSON.stringify(response.data)) | 90 | Logger.debug('HttpRequest', 'response: ' + JSON.stringify(response.data)) |
| 90 | - Logger.debug('HttpRequest', 'response ======end======= ') | 91 | + Logger.debug('HttpRequest', 'response ==============end=================') |
| 91 | // 改造返回的数据,即将AxiosResponse的data返回,服务端返回的数据 | 92 | // 改造返回的数据,即将AxiosResponse的data返回,服务端返回的数据 |
| 92 | return response.data; | 93 | return response.data; |
| 93 | } else { | 94 | } else { |
| @@ -102,7 +103,7 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r | @@ -102,7 +103,7 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r | ||
| 102 | // console.log(error.request) | 103 | // console.log(error.request) |
| 103 | // console.log(error.response) | 104 | // console.log(error.response) |
| 104 | // 这里用来处理http常见错误,进行全局提示 | 105 | // 这里用来处理http常见错误,进行全局提示 |
| 105 | - if(error!=null && error.response!=null ){ | 106 | + if (error != null && error.response != null) { |
| 106 | let message = buildErrorMsg(error.response.status); | 107 | let message = buildErrorMsg(error.response.status); |
| 107 | // 错误消息可以使用全局弹框展示出来 | 108 | // 错误消息可以使用全局弹框展示出来 |
| 108 | console.log(`httpStatus:${error.response?.status}-${message},请检查网络或联系管理员!`) | 109 | console.log(`httpStatus:${error.response?.status}-${message},请检查网络或联系管理员!`) |
-
Please register or login to post a comment