electron-loki-logger 1.0.10 → 1.0.12
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.md +97 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,14 +7,77 @@
|
|
|
7
7
|
一款轻量、稳定、开箱即用的`Loki`专用日志库,深度适配`Electron`桌面端与`Node.js`服务端。原生输出标准`JSON`结构化日志,自动解析并清洗代码调用路径、文件行号、主机标识,支持任意自定义业务字段扩展。采用异步队列批量上报,内置超时与异常捕获,网络或`Loki`服务异常时静默降级,零侵入、不阻塞主业务流程,是对接`Grafana Loki`日志系统的高效解决方案。
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## 参数配置项说明
|
|
13
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
14
|
+
| ---- | ---- | ---- | ---- |
|
|
15
|
+
| lokiUrl | string | `http://localhost:3100/loki/api/v1/push` | `Loki`服务推送地址。 |
|
|
16
|
+
| env | string | `development` | 运行环境标识,会作为标签上报 |
|
|
17
|
+
| extraTags | Record<string, string> | `{}` | 自定义全局标签。类似`Loki`流标签,在日志中看不到。 |
|
|
18
|
+
| enableConsole | boolean | `true` | 是否在控制台同步打印日志 |
|
|
19
|
+
| queueSize | number | - | 日志队列最大长度(预留扩展) |
|
|
20
|
+
| enablePath | boolean | `true` | 是否解析调用栈并输出 `path` 代码路径字段 |
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
- `enablePath`:
|
|
24
|
+
- 类型:`boolean`
|
|
25
|
+
- 默认值:`false`
|
|
26
|
+
- 作用:控制日志中是否自动输出`path`(代码文件路径 + 行号)字段;同时决定是否解析调用栈。
|
|
27
|
+
- 取值说明:
|
|
28
|
+
- `rue`(默认):开启调用栈解析,日志自动携带 path 字段,方便定位代码位置;
|
|
29
|
+
- `false`:关闭调用栈解析,日志不再输出`path`字段,减少性能开销。
|
|
30
|
+
|
|
31
|
+
## 用法示例
|
|
32
|
+
|
|
33
|
+
### enablePath为false
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
import LokiLogger from 'electron-loki';
|
|
37
|
+
|
|
38
|
+
const logger = new LokiLogger('test', {
|
|
39
|
+
lokiUrl: 'http://localhost:3100/loki/api/v1/push',
|
|
40
|
+
enablePath: false
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
logger.debug('debug connected');
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
输出日志如下:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
{"msg":"debug connected","level":"DEBUG","ip":"DESKTOP.F6Q9KT5"}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### enablePath为true
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
import LokiLogger from 'electron-loki';
|
|
56
|
+
|
|
57
|
+
const logger = new LokiLogger('test', {
|
|
58
|
+
lokiUrl: 'http://localhost:3100/loki/api/v1/push',
|
|
59
|
+
enablePath: false
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
logger.debug('debug connected');
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
输出日志如下:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
{"msg":"debug connected","level":"DEBUG","ip":"DESKTOP.F6Q9KT5","path":"D:/xxxx/xx/dist/index.mjs:137"}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 示例
|
|
72
|
+
|
|
11
73
|
```ts
|
|
12
74
|
import LokiLogger from 'electron-loki';
|
|
13
75
|
|
|
14
76
|
const logger = new LokiLogger('test', {
|
|
15
77
|
env: process.env.NODE_ENV,
|
|
16
|
-
lokiUrl: 'http://
|
|
17
|
-
extraTags: { version: '1.2.3' }
|
|
78
|
+
lokiUrl: 'http://localhost:3100/loki/api/v1/push',
|
|
79
|
+
extraTags: { version: '1.2.3' },
|
|
80
|
+
enablePath: false
|
|
18
81
|
});
|
|
19
82
|
|
|
20
83
|
logger.info('App started');
|
|
@@ -39,4 +102,34 @@ logger.info("接口请求完成", { cost: 200, status: 200 });
|
|
|
39
102
|
|
|
40
103
|
// 3. 直接传主体对象
|
|
41
104
|
logger.error({ code: 500, message: "服务异常" }, { trace: "xxx" });
|
|
42
|
-
```
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 捕获异常示例
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
import LokiLogger from 'electron-loki-logger';
|
|
111
|
+
|
|
112
|
+
const logger = new LokiLogger('test', {
|
|
113
|
+
lokiUrl: 'http://localhost:3100/loki/api/v1/push',
|
|
114
|
+
extraTags: { version: '1.2.3'},
|
|
115
|
+
enablePath: true
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
function testFunc() {
|
|
119
|
+
throw new Error("接口请求失败,超时");
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
try {
|
|
123
|
+
testFunc();
|
|
124
|
+
} catch (err) {
|
|
125
|
+
// 方式1:基础用法,仅传错误文本
|
|
126
|
+
logger.error(err.message);
|
|
127
|
+
|
|
128
|
+
// 方式2:完整上报 错误信息 + 堆栈 + 自定义扩展字段(推荐)
|
|
129
|
+
logger.error("执行函数异常", {
|
|
130
|
+
error_msg: (err).message,
|
|
131
|
+
error_stack: (err).stack
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ interface LokiLoggerOptions {
|
|
|
4
4
|
extraTags?: Record<string, string>;
|
|
5
5
|
enableConsole?: boolean;
|
|
6
6
|
queueSize?: number;
|
|
7
|
+
enablePath?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare class LokiLogger {
|
|
9
10
|
private appName;
|
|
@@ -12,6 +13,7 @@ export declare class LokiLogger {
|
|
|
12
13
|
private extraTags;
|
|
13
14
|
private enableConsole;
|
|
14
15
|
private queue;
|
|
16
|
+
private enablePath;
|
|
15
17
|
constructor(appName: string, options?: LokiLoggerOptions);
|
|
16
18
|
private getCallerInfo;
|
|
17
19
|
private formatMessage;
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAwDD,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,UAAU,CAAU;gBAGhB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAmB5D,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,IAAI;IAYZ,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKxC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKzC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIxC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKzC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK5C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI9C;AAGD,eAAe,UAAU,CAAC"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,eAAe;IAIjB,YAAY,GAAW,EAAE,IAA4B;QACjD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc;QACrB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG;gBACZ,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;aACxD,CAAC;YAEF,MAAM,KAAK,CAAC,IAAI,CACZ,IAAI,CAAC,GAAG,EACR,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EACtB;gBACI,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,OAAO,EAAE,IAAI;aAChB,CACJ,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,eAAe;QACnB,CAAC;IACL,CAAC;CACJ;AAED,MAAM,QAAQ;IAKV,YAAY,OAAwB;QAJ5B,UAAK,GAAa,EAAE,CAAC;QACrB,iBAAY,GAAG,KAAK,CAAC;QAIzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,IAAY;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACjC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,OAAO,UAAU;IAUnB,YAAY,OAAe,EAAE,UAA6B,EAAE;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,wCAAwC,CAAC;QAC3E,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC;QAC/C,MAAM,IAAI,GAAG;YACT,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE;YACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,IAAI,CAAC,SAAS;SACpB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa;QACjB,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEhG,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;iBACd,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAO,gBAAgB;iBAChD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAc,eAAe;iBAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAM,UAAU;iBAC1C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAY,YAAY;YACjD,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,OAAO;YACH,IAAI,EAAE,GAAG,QAAQ,IAAI,MAAM,EAAE;YAC7B,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SACvC,CAAC;IACN,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,GAAQ,EAAE,GAAyB;QACpE,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,uBAAuB;QACvB,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;YAC3B,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;QACnC,CAAC;aAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACrB,CAAC;QAED,YAAY;QACZ,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEnC,kBAAkB;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAEO,IAAI,CAAC,KAAa,EAAE,OAAe;QACvC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9E,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,GAAyB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAQ,EAAE,GAAyB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,GAAyB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,GAAyB;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAQ,EAAE,GAAyB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,GAAQ,EAAE,GAAyB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,GAAyB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED,OAAO;AACP,eAAe,UAAU,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ interface LokiLoggerOptions {
|
|
|
4
4
|
extraTags?: Record<string, string>;
|
|
5
5
|
enableConsole?: boolean;
|
|
6
6
|
queueSize?: number;
|
|
7
|
+
enablePath?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare class LokiLogger {
|
|
9
10
|
private appName;
|
|
@@ -12,6 +13,7 @@ export declare class LokiLogger {
|
|
|
12
13
|
private extraTags;
|
|
13
14
|
private enableConsole;
|
|
14
15
|
private queue;
|
|
16
|
+
private enablePath;
|
|
15
17
|
constructor(appName: string, options?: LokiLoggerOptions);
|
|
16
18
|
private getCallerInfo;
|
|
17
19
|
private formatMessage;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAwDD,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,UAAU,CAAU;gBAGhB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAmB5D,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,IAAI;IAYZ,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKxC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKzC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIxC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKzC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK5C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAI9C;AAGD,eAAe,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -55,6 +55,7 @@ class LokiLogger {
|
|
|
55
55
|
this.env = options.env || 'development';
|
|
56
56
|
this.extraTags = options.extraTags || {};
|
|
57
57
|
this.enableConsole = options.enableConsole !== false;
|
|
58
|
+
this.enablePath = options.enablePath !== false;
|
|
58
59
|
const tags = {
|
|
59
60
|
app: this.appName,
|
|
60
61
|
env: this.env,
|
|
@@ -87,22 +88,31 @@ class LokiLogger {
|
|
|
87
88
|
}
|
|
88
89
|
formatMessage(level, msg, ext) {
|
|
89
90
|
const logObj = {};
|
|
90
|
-
//
|
|
91
|
-
if (msg
|
|
91
|
+
// 原生识别 Error 对象,自动解析堆栈
|
|
92
|
+
if (msg instanceof Error) {
|
|
93
|
+
logObj.error = msg.message;
|
|
94
|
+
logObj.error_stack = msg.stack;
|
|
95
|
+
}
|
|
96
|
+
else if (msg && typeof msg === 'object' && !Array.isArray(msg)) {
|
|
92
97
|
Object.assign(logObj, msg);
|
|
93
98
|
}
|
|
94
99
|
else {
|
|
95
100
|
logObj.msg = msg;
|
|
96
101
|
}
|
|
97
|
-
//
|
|
102
|
+
// 合并自定义扩展字段
|
|
98
103
|
if (ext && typeof ext === 'object' && !Array.isArray(ext)) {
|
|
99
104
|
Object.assign(logObj, ext);
|
|
100
105
|
}
|
|
101
|
-
// 固定内置字段
|
|
102
|
-
const caller = this.getCallerInfo();
|
|
103
|
-
logObj.ip = caller.ip;
|
|
104
|
-
logObj.path = caller.path;
|
|
105
106
|
logObj.level = level.toUpperCase();
|
|
107
|
+
// 控制 path / ip 输出
|
|
108
|
+
if (this.enablePath) {
|
|
109
|
+
const caller = this.getCallerInfo();
|
|
110
|
+
logObj.ip = caller.ip;
|
|
111
|
+
logObj.path = caller.path;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
logObj.ip = os_1.default.hostname().replace(/-/g, '.');
|
|
115
|
+
}
|
|
106
116
|
try {
|
|
107
117
|
return JSON.stringify(logObj, null, 0);
|
|
108
118
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,eAAe;AACf,4CAAoB;AACpB,kDAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -49,6 +49,7 @@ export class LokiLogger {
|
|
|
49
49
|
this.env = options.env || 'development';
|
|
50
50
|
this.extraTags = options.extraTags || {};
|
|
51
51
|
this.enableConsole = options.enableConsole !== false;
|
|
52
|
+
this.enablePath = options.enablePath !== false;
|
|
52
53
|
const tags = {
|
|
53
54
|
app: this.appName,
|
|
54
55
|
env: this.env,
|
|
@@ -81,22 +82,31 @@ export class LokiLogger {
|
|
|
81
82
|
}
|
|
82
83
|
formatMessage(level, msg, ext) {
|
|
83
84
|
const logObj = {};
|
|
84
|
-
//
|
|
85
|
-
if (msg
|
|
85
|
+
// 原生识别 Error 对象,自动解析堆栈
|
|
86
|
+
if (msg instanceof Error) {
|
|
87
|
+
logObj.error = msg.message;
|
|
88
|
+
logObj.error_stack = msg.stack;
|
|
89
|
+
}
|
|
90
|
+
else if (msg && typeof msg === 'object' && !Array.isArray(msg)) {
|
|
86
91
|
Object.assign(logObj, msg);
|
|
87
92
|
}
|
|
88
93
|
else {
|
|
89
94
|
logObj.msg = msg;
|
|
90
95
|
}
|
|
91
|
-
//
|
|
96
|
+
// 合并自定义扩展字段
|
|
92
97
|
if (ext && typeof ext === 'object' && !Array.isArray(ext)) {
|
|
93
98
|
Object.assign(logObj, ext);
|
|
94
99
|
}
|
|
95
|
-
// 固定内置字段
|
|
96
|
-
const caller = this.getCallerInfo();
|
|
97
|
-
logObj.ip = caller.ip;
|
|
98
|
-
logObj.path = caller.path;
|
|
99
100
|
logObj.level = level.toUpperCase();
|
|
101
|
+
// 控制 path / ip 输出
|
|
102
|
+
if (this.enablePath) {
|
|
103
|
+
const caller = this.getCallerInfo();
|
|
104
|
+
logObj.ip = caller.ip;
|
|
105
|
+
logObj.path = caller.path;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
logObj.ip = os.hostname().replace(/-/g, '.');
|
|
109
|
+
}
|
|
100
110
|
try {
|
|
101
111
|
return JSON.stringify(logObj, null, 0);
|
|
102
112
|
}
|