@lx-frontend/wx-minapp-monitor 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.html +417 -0
- package/README.md +36 -0
- package/README.png +0 -0
- package/lib/index.d.ts +69 -0
- package/lib/index.js +151 -0
- package/package.json +48 -0
package/README.html
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>README.md</title>
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
|
6
|
+
|
|
7
|
+
<style>
|
|
8
|
+
/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */
|
|
9
|
+
/*---------------------------------------------------------------------------------------------
|
|
10
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
12
|
+
*--------------------------------------------------------------------------------------------*/
|
|
13
|
+
|
|
14
|
+
body {
|
|
15
|
+
font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif);
|
|
16
|
+
font-size: var(--vscode-markdown-font-size, 14px);
|
|
17
|
+
padding: 0 26px;
|
|
18
|
+
line-height: var(--vscode-markdown-line-height, 22px);
|
|
19
|
+
word-wrap: break-word;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#code-csp-warning {
|
|
23
|
+
position: fixed;
|
|
24
|
+
top: 0;
|
|
25
|
+
right: 0;
|
|
26
|
+
color: white;
|
|
27
|
+
margin: 16px;
|
|
28
|
+
text-align: center;
|
|
29
|
+
font-size: 12px;
|
|
30
|
+
font-family: sans-serif;
|
|
31
|
+
background-color:#444444;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
padding: 6px;
|
|
34
|
+
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#code-csp-warning:hover {
|
|
38
|
+
text-decoration: none;
|
|
39
|
+
background-color:#007acc;
|
|
40
|
+
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
body.scrollBeyondLastLine {
|
|
44
|
+
margin-bottom: calc(100vh - 22px);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
body.showEditorSelection .code-line {
|
|
48
|
+
position: relative;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
body.showEditorSelection .code-active-line:before,
|
|
52
|
+
body.showEditorSelection .code-line:hover:before {
|
|
53
|
+
content: "";
|
|
54
|
+
display: block;
|
|
55
|
+
position: absolute;
|
|
56
|
+
top: 0;
|
|
57
|
+
left: -12px;
|
|
58
|
+
height: 100%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
body.showEditorSelection li.code-active-line:before,
|
|
62
|
+
body.showEditorSelection li.code-line:hover:before {
|
|
63
|
+
left: -30px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.vscode-light.showEditorSelection .code-active-line:before {
|
|
67
|
+
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.vscode-light.showEditorSelection .code-line:hover:before {
|
|
71
|
+
border-left: 3px solid rgba(0, 0, 0, 0.40);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.vscode-light.showEditorSelection .code-line .code-line:hover:before {
|
|
75
|
+
border-left: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.vscode-dark.showEditorSelection .code-active-line:before {
|
|
79
|
+
border-left: 3px solid rgba(255, 255, 255, 0.4);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.vscode-dark.showEditorSelection .code-line:hover:before {
|
|
83
|
+
border-left: 3px solid rgba(255, 255, 255, 0.60);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.vscode-dark.showEditorSelection .code-line .code-line:hover:before {
|
|
87
|
+
border-left: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.vscode-high-contrast.showEditorSelection .code-active-line:before {
|
|
91
|
+
border-left: 3px solid rgba(255, 160, 0, 0.7);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
|
|
95
|
+
border-left: 3px solid rgba(255, 160, 0, 1);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {
|
|
99
|
+
border-left: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
img {
|
|
103
|
+
max-width: 100%;
|
|
104
|
+
max-height: 100%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
a {
|
|
108
|
+
text-decoration: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
a:hover {
|
|
112
|
+
text-decoration: underline;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
a:focus,
|
|
116
|
+
input:focus,
|
|
117
|
+
select:focus,
|
|
118
|
+
textarea:focus {
|
|
119
|
+
outline: 1px solid -webkit-focus-ring-color;
|
|
120
|
+
outline-offset: -1px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
hr {
|
|
124
|
+
border: 0;
|
|
125
|
+
height: 2px;
|
|
126
|
+
border-bottom: 2px solid;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
h1 {
|
|
130
|
+
padding-bottom: 0.3em;
|
|
131
|
+
line-height: 1.2;
|
|
132
|
+
border-bottom-width: 1px;
|
|
133
|
+
border-bottom-style: solid;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
h1, h2, h3 {
|
|
137
|
+
font-weight: normal;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
table {
|
|
141
|
+
border-collapse: collapse;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
table > thead > tr > th {
|
|
145
|
+
text-align: left;
|
|
146
|
+
border-bottom: 1px solid;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
table > thead > tr > th,
|
|
150
|
+
table > thead > tr > td,
|
|
151
|
+
table > tbody > tr > th,
|
|
152
|
+
table > tbody > tr > td {
|
|
153
|
+
padding: 5px 10px;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
table > tbody > tr + tr > td {
|
|
157
|
+
border-top: 1px solid;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
blockquote {
|
|
161
|
+
margin: 0 7px 0 5px;
|
|
162
|
+
padding: 0 16px 0 10px;
|
|
163
|
+
border-left-width: 5px;
|
|
164
|
+
border-left-style: solid;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
code {
|
|
168
|
+
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
|
|
169
|
+
font-size: 1em;
|
|
170
|
+
line-height: 1.357em;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
body.wordWrap pre {
|
|
174
|
+
white-space: pre-wrap;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
pre:not(.hljs),
|
|
178
|
+
pre.hljs code > div {
|
|
179
|
+
padding: 16px;
|
|
180
|
+
border-radius: 3px;
|
|
181
|
+
overflow: auto;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
pre code {
|
|
185
|
+
color: var(--vscode-editor-foreground);
|
|
186
|
+
tab-size: 4;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/** Theming */
|
|
190
|
+
|
|
191
|
+
.vscode-light pre {
|
|
192
|
+
background-color: rgba(220, 220, 220, 0.4);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.vscode-dark pre {
|
|
196
|
+
background-color: rgba(10, 10, 10, 0.4);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.vscode-high-contrast pre {
|
|
200
|
+
background-color: rgb(0, 0, 0);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.vscode-high-contrast h1 {
|
|
204
|
+
border-color: rgb(0, 0, 0);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.vscode-light table > thead > tr > th {
|
|
208
|
+
border-color: rgba(0, 0, 0, 0.69);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.vscode-dark table > thead > tr > th {
|
|
212
|
+
border-color: rgba(255, 255, 255, 0.69);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.vscode-light h1,
|
|
216
|
+
.vscode-light hr,
|
|
217
|
+
.vscode-light table > tbody > tr + tr > td {
|
|
218
|
+
border-color: rgba(0, 0, 0, 0.18);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.vscode-dark h1,
|
|
222
|
+
.vscode-dark hr,
|
|
223
|
+
.vscode-dark table > tbody > tr + tr > td {
|
|
224
|
+
border-color: rgba(255, 255, 255, 0.18);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
</style>
|
|
228
|
+
|
|
229
|
+
<style>
|
|
230
|
+
/* Tomorrow Theme */
|
|
231
|
+
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
|
232
|
+
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
|
233
|
+
|
|
234
|
+
/* Tomorrow Comment */
|
|
235
|
+
.hljs-comment,
|
|
236
|
+
.hljs-quote {
|
|
237
|
+
color: #8e908c;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Tomorrow Red */
|
|
241
|
+
.hljs-variable,
|
|
242
|
+
.hljs-template-variable,
|
|
243
|
+
.hljs-tag,
|
|
244
|
+
.hljs-name,
|
|
245
|
+
.hljs-selector-id,
|
|
246
|
+
.hljs-selector-class,
|
|
247
|
+
.hljs-regexp,
|
|
248
|
+
.hljs-deletion {
|
|
249
|
+
color: #c82829;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* Tomorrow Orange */
|
|
253
|
+
.hljs-number,
|
|
254
|
+
.hljs-built_in,
|
|
255
|
+
.hljs-builtin-name,
|
|
256
|
+
.hljs-literal,
|
|
257
|
+
.hljs-type,
|
|
258
|
+
.hljs-params,
|
|
259
|
+
.hljs-meta,
|
|
260
|
+
.hljs-link {
|
|
261
|
+
color: #f5871f;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* Tomorrow Yellow */
|
|
265
|
+
.hljs-attribute {
|
|
266
|
+
color: #eab700;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* Tomorrow Green */
|
|
270
|
+
.hljs-string,
|
|
271
|
+
.hljs-symbol,
|
|
272
|
+
.hljs-bullet,
|
|
273
|
+
.hljs-addition {
|
|
274
|
+
color: #718c00;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Tomorrow Blue */
|
|
278
|
+
.hljs-title,
|
|
279
|
+
.hljs-section {
|
|
280
|
+
color: #4271ae;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Tomorrow Purple */
|
|
284
|
+
.hljs-keyword,
|
|
285
|
+
.hljs-selector-tag {
|
|
286
|
+
color: #8959a8;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.hljs {
|
|
290
|
+
display: block;
|
|
291
|
+
overflow-x: auto;
|
|
292
|
+
color: #4d4d4c;
|
|
293
|
+
padding: 0.5em;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.hljs-emphasis {
|
|
297
|
+
font-style: italic;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.hljs-strong {
|
|
301
|
+
font-weight: bold;
|
|
302
|
+
}
|
|
303
|
+
</style>
|
|
304
|
+
|
|
305
|
+
<style>
|
|
306
|
+
/*
|
|
307
|
+
* Markdown PDF CSS
|
|
308
|
+
*/
|
|
309
|
+
|
|
310
|
+
body {
|
|
311
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif, "Meiryo";
|
|
312
|
+
padding: 0 12px;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
pre {
|
|
316
|
+
background-color: #f8f8f8;
|
|
317
|
+
border: 1px solid #cccccc;
|
|
318
|
+
border-radius: 3px;
|
|
319
|
+
overflow-x: auto;
|
|
320
|
+
white-space: pre-wrap;
|
|
321
|
+
overflow-wrap: break-word;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
pre:not(.hljs) {
|
|
325
|
+
padding: 23px;
|
|
326
|
+
line-height: 19px;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
blockquote {
|
|
330
|
+
background: rgba(127, 127, 127, 0.1);
|
|
331
|
+
border-color: rgba(0, 122, 204, 0.5);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.emoji {
|
|
335
|
+
height: 1.4em;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
code {
|
|
339
|
+
font-size: 14px;
|
|
340
|
+
line-height: 19px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* for inline code */
|
|
344
|
+
:not(pre):not(.hljs) > code {
|
|
345
|
+
color: #C9AE75; /* Change the old color so it seems less like an error */
|
|
346
|
+
font-size: inherit;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* Page Break : use <div class="page"/> to insert page break
|
|
350
|
+
-------------------------------------------------------- */
|
|
351
|
+
.page {
|
|
352
|
+
page-break-after: always;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
</style>
|
|
356
|
+
|
|
357
|
+
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
|
|
358
|
+
</head>
|
|
359
|
+
<body>
|
|
360
|
+
<script>
|
|
361
|
+
mermaid.initialize({
|
|
362
|
+
startOnLoad: true,
|
|
363
|
+
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
|
|
364
|
+
? 'dark'
|
|
365
|
+
: 'default'
|
|
366
|
+
});
|
|
367
|
+
</script>
|
|
368
|
+
<h1 id="minapp-monitor"><code>minapp-monitor</code></h1>
|
|
369
|
+
<h2 id="%E9%85%8D%E7%BD%AE%E9%A1%B9%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F">配置项及使用方式</h2>
|
|
370
|
+
<p>插件目前有以下配置项:</p>
|
|
371
|
+
<table>
|
|
372
|
+
<thead>
|
|
373
|
+
<tr>
|
|
374
|
+
<th><strong>配置项</strong></th>
|
|
375
|
+
<th><strong>说明</strong></th>
|
|
376
|
+
<th><strong>类型</strong></th>
|
|
377
|
+
<th><strong>是否必填</strong></th>
|
|
378
|
+
<th><strong>默认值</strong></th>
|
|
379
|
+
</tr>
|
|
380
|
+
</thead>
|
|
381
|
+
<tbody>
|
|
382
|
+
<tr>
|
|
383
|
+
<td>enable</td>
|
|
384
|
+
<td>是否启用日志插件</td>
|
|
385
|
+
<td>boolean</td>
|
|
386
|
+
<td>非必填</td>
|
|
387
|
+
<td>true</td>
|
|
388
|
+
</tr>
|
|
389
|
+
</tbody>
|
|
390
|
+
</table>
|
|
391
|
+
<p>| <strong>方法名</strong> | <strong>参数</strong> | <strong>说明</strong> |
|
|
392
|
+
| [set]enabled | value:boolean | 全局开启或关闭上报功能
|
|
393
|
+
| [get]enabled | 无 | 当前上报功能是否开启
|
|
394
|
+
| info | args:any[] | 上报info日志
|
|
395
|
+
| warn | args:any[] | 上报warn日志
|
|
396
|
+
| error | args:any[] | 上报error日志
|
|
397
|
+
| addFilterMsg | msg:string | 添加过滤关键字
|
|
398
|
+
| setFilterMsg | msg:string | 设置过滤关键字
|
|
399
|
+
| reportSysInfo | 无 | 上报当前系统信息
|
|
400
|
+
| reportRouterInfo | latest:number | 上报当前页面栈信息,可以指定上报最近几条,默认上报所有</p>
|
|
401
|
+
<h2 id="%E4%BD%BF%E7%94%A8%E4%B8%BE%E4%BE%8B">使用举例</h2>
|
|
402
|
+
<blockquote>
|
|
403
|
+
<p>安装</p>
|
|
404
|
+
</blockquote>
|
|
405
|
+
<p>npm -i @lx-frontend/minapp-monitor --save</p>
|
|
406
|
+
<blockquote>
|
|
407
|
+
<p>在项目中引入</p>
|
|
408
|
+
</blockquote>
|
|
409
|
+
<pre class="hljs"><code><div>import RealtimeLogManager from '@lx-frontend/minapp-monitor'
|
|
410
|
+
|
|
411
|
+
const logger = RealtimeLogManager.getInstance()
|
|
412
|
+
|
|
413
|
+
logger.info('----这是一条日志信息')
|
|
414
|
+
</div></code></pre>
|
|
415
|
+
|
|
416
|
+
</body>
|
|
417
|
+
</html>
|
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# `minapp-monitor`
|
|
2
|
+
|
|
3
|
+
## 配置项及使用方式
|
|
4
|
+
插件目前有以下配置项:
|
|
5
|
+
|
|
6
|
+
| **配置项** | **说明** | **类型** | **是否必填** | **默认值** |
|
|
7
|
+
| --- | --- | --- | --- | --- |
|
|
8
|
+
| enable | 是否启用日志插件 | boolean | 非必填 | true |
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
| **方法名** | **参数** | **说明** |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| [set]enabled | value:boolean | 全局开启或关闭上报功能 |
|
|
14
|
+
| [get]enabled | 无 | 当前上报功能是否开启 |
|
|
15
|
+
| info | args:any[] | 上报info日志 |
|
|
16
|
+
| warn | args:any[] | 上报warn日志 |
|
|
17
|
+
| error | args:any[] | 上报error日志 |
|
|
18
|
+
| addFilterMsg | msg:string | 添加过滤关键字 |
|
|
19
|
+
| setFilterMsg | msg:string | 设置过滤关键字 |
|
|
20
|
+
| reportSysInfo | 无 | 上报当前系统信息 |
|
|
21
|
+
| reportRouterInfo | latest:number | 上报当前页面栈信息,可以指定上报最近几条,默认上报所有 |
|
|
22
|
+
|
|
23
|
+
## 使用举例
|
|
24
|
+
> 安装
|
|
25
|
+
|
|
26
|
+
npm -i @lx-frontend/minapp-monitor --save
|
|
27
|
+
|
|
28
|
+
>在项目中引入
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
import RealtimeLogManager from '@lx-frontend/minapp-monitor'
|
|
32
|
+
|
|
33
|
+
const logger = RealtimeLogManager.getInstance()
|
|
34
|
+
|
|
35
|
+
logger.info('----这是一条日志信息')
|
|
36
|
+
```
|
package/README.png
ADDED
|
Binary file
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
interface RealtimeLogManagerOptions {
|
|
2
|
+
/**
|
|
3
|
+
* 是否开启全局日志记录开关,默认为 true
|
|
4
|
+
*/
|
|
5
|
+
enable?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare class RealtimeLogManager {
|
|
8
|
+
private logger;
|
|
9
|
+
private isEnable;
|
|
10
|
+
constructor(options?: RealtimeLogManagerOptions);
|
|
11
|
+
private validLogger;
|
|
12
|
+
/**
|
|
13
|
+
* 数据脱敏
|
|
14
|
+
* @param data 需要脱敏的数据
|
|
15
|
+
*/
|
|
16
|
+
private filterData;
|
|
17
|
+
private RouterCenter;
|
|
18
|
+
/**
|
|
19
|
+
* 获取 RealtimeLogManager 实例,使用单例模式
|
|
20
|
+
* @param options RealtimeLogManager 配置项
|
|
21
|
+
* @returns RealtimeLogManager 实例
|
|
22
|
+
*/
|
|
23
|
+
static getInstance(options?: RealtimeLogManagerOptions): RealtimeLogManager;
|
|
24
|
+
/**
|
|
25
|
+
* 开启或关闭该实例的日志记录功能
|
|
26
|
+
*/
|
|
27
|
+
set enabled(value: boolean);
|
|
28
|
+
/**
|
|
29
|
+
* 获取该实例的日志记录功能是否开启
|
|
30
|
+
*/
|
|
31
|
+
get enabled(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param args
|
|
35
|
+
*/
|
|
36
|
+
info(...args: any[]): void;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* @param args
|
|
40
|
+
*/
|
|
41
|
+
warn(...args: any[]): void;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @param args
|
|
45
|
+
*/
|
|
46
|
+
error(...args: any[]): void;
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
* @param msg
|
|
50
|
+
* @returns
|
|
51
|
+
*/
|
|
52
|
+
addFilterMsg(msg: string): void;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* @param msg
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
setFilterMsg(msg: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* 获取当前系统信息
|
|
61
|
+
*/
|
|
62
|
+
reportSysInfo(): void;
|
|
63
|
+
/**
|
|
64
|
+
* 获取当前页面栈信息
|
|
65
|
+
* @param latest 获取最近的latest条页面栈
|
|
66
|
+
*/
|
|
67
|
+
reportRouterInfo(latest?: number): void;
|
|
68
|
+
}
|
|
69
|
+
export = RealtimeLogManager;
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var tslib_1 = require("tslib");
|
|
3
|
+
var instance;
|
|
4
|
+
var RealtimeLogManager = /** @class */ (function () {
|
|
5
|
+
function RealtimeLogManager(options) {
|
|
6
|
+
if (options === void 0) { options = {}; }
|
|
7
|
+
// private static instance: RealtimeLogManager;
|
|
8
|
+
this.logger = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;
|
|
9
|
+
this.isEnable = options.enable === undefined ? true : options.enable;
|
|
10
|
+
}
|
|
11
|
+
RealtimeLogManager.prototype.validLogger = function () {
|
|
12
|
+
if (!this.isEnable)
|
|
13
|
+
return false;
|
|
14
|
+
if (!this.logger) {
|
|
15
|
+
console.warn('RealtimeLogManager is not supported, please check the version');
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* 数据脱敏
|
|
22
|
+
* @param data 需要脱敏的数据
|
|
23
|
+
*/
|
|
24
|
+
// eslint-disable-next-line class-methods-use-this
|
|
25
|
+
RealtimeLogManager.prototype.filterData = function (data) {
|
|
26
|
+
var jsonStr = JSON.stringify(data);
|
|
27
|
+
var jsonFilter = jsonStr.replace(/(\d{3})\d+(\d{4})/gm, '$1****$2').replace(/(\d{6})\d+(\d{4})/gm, '$1******$2');
|
|
28
|
+
return jsonFilter;
|
|
29
|
+
};
|
|
30
|
+
RealtimeLogManager.prototype.RouterCenter = function (type) {
|
|
31
|
+
var _a;
|
|
32
|
+
var _this = this;
|
|
33
|
+
var args = [];
|
|
34
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
35
|
+
args[_i - 1] = arguments[_i];
|
|
36
|
+
}
|
|
37
|
+
if (!this.validLogger())
|
|
38
|
+
return;
|
|
39
|
+
// 获取当前系统信息
|
|
40
|
+
var sysInfo = wx.getSystemInfoSync() || {};
|
|
41
|
+
// 获取当前路由信息
|
|
42
|
+
var routerInfo = getCurrentPages() ? getCurrentPages().map(function (_) { return ({ route: _.route, options: _.options }); }) : {};
|
|
43
|
+
var params = args.map(function (_) { return _this.filterData(_); });
|
|
44
|
+
(_a = this.logger[type]).call.apply(_a, tslib_1.__spreadArray([this.logger], params, false));
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* 获取 RealtimeLogManager 实例,使用单例模式
|
|
48
|
+
* @param options RealtimeLogManager 配置项
|
|
49
|
+
* @returns RealtimeLogManager 实例
|
|
50
|
+
*/
|
|
51
|
+
RealtimeLogManager.getInstance = function (options) {
|
|
52
|
+
if (options === void 0) { options = {}; }
|
|
53
|
+
if (!instance) {
|
|
54
|
+
instance = new RealtimeLogManager(options);
|
|
55
|
+
}
|
|
56
|
+
return instance;
|
|
57
|
+
};
|
|
58
|
+
Object.defineProperty(RealtimeLogManager.prototype, "enabled", {
|
|
59
|
+
/**
|
|
60
|
+
* 获取该实例的日志记录功能是否开启
|
|
61
|
+
*/
|
|
62
|
+
get: function () {
|
|
63
|
+
return this.isEnable === undefined ? true : this.isEnable;
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* 开启或关闭该实例的日志记录功能
|
|
67
|
+
*/
|
|
68
|
+
set: function (value) {
|
|
69
|
+
this.isEnable = value;
|
|
70
|
+
},
|
|
71
|
+
enumerable: false,
|
|
72
|
+
configurable: true
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* @param args
|
|
77
|
+
*/
|
|
78
|
+
RealtimeLogManager.prototype.info = function () {
|
|
79
|
+
var args = [];
|
|
80
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
81
|
+
args[_i] = arguments[_i];
|
|
82
|
+
}
|
|
83
|
+
this.RouterCenter.apply(this, tslib_1.__spreadArray(['info'], args, false));
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
*
|
|
87
|
+
* @param args
|
|
88
|
+
*/
|
|
89
|
+
RealtimeLogManager.prototype.warn = function () {
|
|
90
|
+
var args = [];
|
|
91
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
92
|
+
args[_i] = arguments[_i];
|
|
93
|
+
}
|
|
94
|
+
this.RouterCenter.apply(this, tslib_1.__spreadArray(['warn'], args, false));
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
*
|
|
98
|
+
* @param args
|
|
99
|
+
*/
|
|
100
|
+
RealtimeLogManager.prototype.error = function () {
|
|
101
|
+
var args = [];
|
|
102
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
103
|
+
args[_i] = arguments[_i];
|
|
104
|
+
}
|
|
105
|
+
this.RouterCenter.apply(this, tslib_1.__spreadArray(['error'], args, false));
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
*
|
|
109
|
+
* @param msg
|
|
110
|
+
* @returns
|
|
111
|
+
*/
|
|
112
|
+
RealtimeLogManager.prototype.addFilterMsg = function (msg) {
|
|
113
|
+
if (!this.validLogger())
|
|
114
|
+
return;
|
|
115
|
+
this.logger.addFilterMsg(msg);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
* @param msg
|
|
120
|
+
* @returns
|
|
121
|
+
*/
|
|
122
|
+
RealtimeLogManager.prototype.setFilterMsg = function (msg) {
|
|
123
|
+
if (!this.validLogger())
|
|
124
|
+
return;
|
|
125
|
+
this.logger.setFilterMsg(msg);
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* 获取当前系统信息
|
|
129
|
+
*/
|
|
130
|
+
RealtimeLogManager.prototype.reportSysInfo = function () {
|
|
131
|
+
if (!this.validLogger())
|
|
132
|
+
return;
|
|
133
|
+
var sysInfo = wx.getSystemInfoSync() || {};
|
|
134
|
+
this.logger.info('------系统信息------', sysInfo);
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* 获取当前页面栈信息
|
|
138
|
+
* @param latest 获取最近的latest条页面栈
|
|
139
|
+
*/
|
|
140
|
+
RealtimeLogManager.prototype.reportRouterInfo = function (latest) {
|
|
141
|
+
if (latest === void 0) { latest = 0; }
|
|
142
|
+
if (!this.validLogger())
|
|
143
|
+
return;
|
|
144
|
+
var num = !+latest ? 0 : +latest;
|
|
145
|
+
var routerInfo = getCurrentPages() ? getCurrentPages().slice(-num).map(function (_) { return ({ route: _.route, options: _.options }); }) : {};
|
|
146
|
+
this.logger.info('------路由信息------', routerInfo);
|
|
147
|
+
};
|
|
148
|
+
return RealtimeLogManager;
|
|
149
|
+
}());
|
|
150
|
+
module.exports = RealtimeLogManager;
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxJQUFJLFFBQTRCLENBQUM7QUFFakM7SUFNRSw0QkFBbUIsT0FBdUM7UUFBdkMsd0JBQUEsRUFBQSxZQUF1QztRQUwxRCwrQ0FBK0M7UUFDdkMsV0FBTSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUszRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkUsQ0FBQztJQUVPLHdDQUFXLEdBQW5CO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFBO1lBQzdFLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrREFBa0Q7SUFDMUMsdUNBQVUsR0FBbEIsVUFBbUIsSUFBUztRQUMxQixJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3BDLElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ2xILE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFTyx5Q0FBWSxHQUFwQixVQUFxQixJQUFZOztRQUFqQyxpQkFRQztRQVJrQyxjQUFjO2FBQWQs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
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lx-frontend/wx-minapp-monitor",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "a sdk for min-app monitor",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"min-app",
|
|
7
|
+
"wx",
|
|
8
|
+
"monitor"
|
|
9
|
+
],
|
|
10
|
+
"author": "Ethan Chen <ethan.chen@lixinchuxing.com>",
|
|
11
|
+
"homepage": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"main": "lib/index.js",
|
|
14
|
+
"types": "lib/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"lib"
|
|
17
|
+
],
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git@code.lixinio.com:frontend/lx-basic.git"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "npm run clean && tsc",
|
|
27
|
+
"build:test": "npm run build -- --sourceMap false --inlineSourceMap true --noImplicitAny false",
|
|
28
|
+
"clean": "rimraf lib",
|
|
29
|
+
"build:badges": "jest-coverage-badges --output './badges'",
|
|
30
|
+
"clean:coverage": "rimraf coverage",
|
|
31
|
+
"test": "npm run clean:coverage && npm run build:test && jest && npm run build:badges"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"tslib": "^2.5.3"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/jest": "^29.5.1",
|
|
38
|
+
"jest": "^29.5.0",
|
|
39
|
+
"ts-jest": "^29.1.0",
|
|
40
|
+
"typescript": "^5.0.4"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@types/jest": "^29.5.1",
|
|
44
|
+
"jest": "^29.5.0",
|
|
45
|
+
"ts-jest": "^29.1.0",
|
|
46
|
+
"typescript": "^5.0.4"
|
|
47
|
+
}
|
|
48
|
+
}
|