vona-module-a-logger 5.0.33 → 5.1.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.
Files changed (38) hide show
  1. package/LICENSE +0 -0
  2. package/dist/.metadata/index.d.ts +20 -8
  3. package/dist/.metadata/index.d.ts.map +1 -0
  4. package/dist/.metadata/this.d.ts +1 -0
  5. package/dist/.metadata/this.d.ts.map +1 -0
  6. package/dist/bean/aopMethod.log.d.ts +1 -0
  7. package/dist/bean/aopMethod.log.d.ts.map +1 -0
  8. package/dist/bean/bean.logger.d.ts +8 -3
  9. package/dist/bean/bean.logger.d.ts.map +1 -0
  10. package/dist/bean/broadcast.setFilterChild.d.ts +11 -0
  11. package/dist/bean/broadcast.setFilterChild.d.ts.map +1 -0
  12. package/dist/bean/broadcast.setFilterLevel.d.ts +11 -0
  13. package/dist/bean/broadcast.setFilterLevel.d.ts.map +1 -0
  14. package/dist/bean/middlewareSystem.httpLog.d.ts +1 -0
  15. package/dist/bean/middlewareSystem.httpLog.d.ts.map +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +63 -36
  19. package/dist/index.js.map +1 -0
  20. package/dist/main.d.ts +1 -0
  21. package/dist/main.d.ts.map +1 -0
  22. package/dist/types/index.d.ts +1 -0
  23. package/dist/types/index.d.ts.map +1 -0
  24. package/dist/types/logger.d.ts +1 -0
  25. package/dist/types/logger.d.ts.map +1 -0
  26. package/package.json +25 -20
  27. package/src/.metadata/index.ts +157 -0
  28. package/src/.metadata/this.ts +2 -0
  29. package/src/bean/aopMethod.log.ts +126 -0
  30. package/src/bean/bean.logger.ts +78 -0
  31. package/src/bean/broadcast.setFilterChild.ts +21 -0
  32. package/src/bean/broadcast.setFilterLevel.ts +21 -0
  33. package/src/bean/middlewareSystem.httpLog.ts +28 -0
  34. package/src/index.ts +2 -0
  35. package/src/main.ts +18 -0
  36. package/src/types/index.ts +1 -0
  37. package/src/types/logger.ts +6 -0
  38. package/dist/bean/broadcast.setLevel.d.ts +0 -10
package/LICENSE CHANGED
File without changes
@@ -56,27 +56,38 @@ declare module 'vona' {
56
56
  }
57
57
  /** bean: end */
58
58
  /** broadcast: begin */
59
- export * from '../bean/broadcast.setLevel.ts';
59
+ export * from '../bean/broadcast.setFilterChild.ts';
60
+ export * from '../bean/broadcast.setFilterLevel.ts';
60
61
  import { type IDecoratorBroadcastOptions } from 'vona-module-a-broadcast';
61
62
  declare module 'vona-module-a-broadcast' {
62
63
  interface IBroadcastRecord {
63
- 'a-logger:setLevel': IDecoratorBroadcastOptions;
64
+ 'a-logger:setFilterChild': IDecoratorBroadcastOptions;
65
+ 'a-logger:setFilterLevel': IDecoratorBroadcastOptions;
64
66
  }
65
67
  }
66
68
  declare module 'vona-module-a-logger' {
67
- interface BroadcastSetLevel {
69
+ interface BroadcastSetFilterChild {
68
70
  }
69
- interface BroadcastSetLevel {
70
- get $beanFullName(): 'a-logger.broadcast.setLevel';
71
- get $onionName(): 'a-logger:setLevel';
71
+ interface BroadcastSetFilterChild {
72
+ get $beanFullName(): 'a-logger.broadcast.setFilterChild';
73
+ get $onionName(): 'a-logger:setFilterChild';
74
+ get $onionOptions(): IDecoratorBroadcastOptions;
75
+ }
76
+ interface BroadcastSetFilterLevel {
77
+ }
78
+ interface BroadcastSetFilterLevel {
79
+ get $beanFullName(): 'a-logger.broadcast.setFilterLevel';
80
+ get $onionName(): 'a-logger:setFilterLevel';
72
81
  get $onionOptions(): IDecoratorBroadcastOptions;
73
82
  }
74
83
  }
75
84
  /** broadcast: end */
76
85
  /** broadcast: begin */
77
- import type { BroadcastSetLevel } from '../bean/broadcast.setLevel.ts';
86
+ import type { BroadcastSetFilterChild } from '../bean/broadcast.setFilterChild.ts';
87
+ import type { BroadcastSetFilterLevel } from '../bean/broadcast.setFilterLevel.ts';
78
88
  export interface IModuleBroadcast {
79
- 'setLevel': BroadcastSetLevel;
89
+ 'setFilterChild': BroadcastSetFilterChild;
90
+ 'setFilterLevel': BroadcastSetFilterLevel;
80
91
  }
81
92
  /** broadcast: end */
82
93
  /** main: begin */
@@ -100,3 +111,4 @@ declare module 'vona' {
100
111
  }
101
112
  }
102
113
  /** scope: end */
114
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-logger";
2
2
  export { ScopeModuleALogger as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -19,3 +19,4 @@ export declare class AopMethodLog extends BeanAopMethodBase implements IAopMetho
19
19
  _logResult(profiler: winston.Profiler, context: any, res: any, options: IAopMethodOptionsLog, message: string): void;
20
20
  _logError(profiler: winston.Profiler, context: any, err: Error, _options: IAopMethodOptionsLog, message: string): void;
21
21
  }
22
+ //# sourceMappingURL=aopMethod.log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aopMethod.log.d.ts","sourceRoot":"","sources":["../../src/bean/aopMethod.log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACxH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAsB,MAAM,MAAM,CAAC;AAG7D,MAAM,WAAW,oBAAqB,SAAQ,0BAA0B;IACtE,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,kBAAkB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,mBAAmB,CAAC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,qBAGa,YAAa,SAAQ,iBAAkB,YAAW,aAAa,EAAE,aAAa,EAAE,iBAAiB;IAC5G,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG;IAiBpF,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAiBpG,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IA6BzH,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAG;IAMxD,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;IAY9G,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;IAY7G,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAWhH"}
@@ -1,13 +1,18 @@
1
1
  import type { ILoggerChildRecord, ILoggerClientRecord, ILoggerOptionsClientInfo, LoggerLevel } from 'vona';
2
+ import type { ILoggerFormatOpts } from 'vona';
2
3
  import type * as Transport from 'winston-transport';
3
4
  import { BeanBase } from 'vona';
4
5
  import * as Winston from 'winston';
5
6
  export declare class BeanLogger extends BeanBase {
6
- getLevel(clientName?: keyof ILoggerClientRecord): LoggerLevel | false;
7
- setLevel(level: LoggerLevel | boolean, clientName?: keyof ILoggerClientRecord): void;
7
+ getFilterLevel(clientName?: keyof ILoggerClientRecord): LoggerLevel | false;
8
+ setFilterLevel(level: LoggerLevel | boolean, clientName?: keyof ILoggerClientRecord): void;
9
+ getFilterChild(clientName?: keyof ILoggerClientRecord): string[] | undefined;
10
+ setFilterChild(child: string | string[], clientName?: keyof ILoggerClientRecord): void;
8
11
  get default(): Winston.Logger;
9
12
  get(clientName?: keyof ILoggerClientRecord): Winston.Logger;
10
13
  getChild(childName: keyof ILoggerChildRecord, clientName?: keyof ILoggerClientRecord): Winston.Logger;
11
- makeTransportFile(clientInfo: ILoggerOptionsClientInfo, fileName: string, levelStrict?: LoggerLevel): Transport;
14
+ makeFormatBase(opts: ILoggerFormatOpts): Winston.Logform.Format;
15
+ makeTransportFile(clientInfo: ILoggerOptionsClientInfo, fileName: string, levelStrict?: LoggerLevel, childStrict?: string | string[]): Transport;
12
16
  makeTransportConsole(clientInfo: ILoggerOptionsClientInfo): Transport;
13
17
  }
18
+ //# sourceMappingURL=bean.logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.logger.d.ts","sourceRoot":"","sources":["../../src/bean/bean.logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC3G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAuG,MAAM,MAAM,CAAC;AAErI,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,qBACa,UAAW,SAAQ,QAAQ;IAC/B,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,WAAW,GAAG,KAAK;IAI3E,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,mBAAmB;IAKnF,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,MAAM,EAAE,GAAG,SAAS;IAI5E,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,mBAAmB;IAKtF,IAAW,OAAO,IAAI,OAAO,CAAC,MAAM,CAEnC;IAEM,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM;IAI3D,QAAQ,CAAC,SAAS,EAAE,MAAM,kBAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM;IAIrG,cAAc,CAAC,IAAI,EAAE,iBAAiB;IAUtC,iBAAiB,CACtB,UAAU,EAAE,wBAAwB,EACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAC9B,SAAS;IAUL,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,SAAS;CAY7E"}
@@ -0,0 +1,11 @@
1
+ import type { ILoggerClientRecord } from 'vona';
2
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
3
+ import { BeanBroadcastBase } from 'vona-module-a-broadcast';
4
+ export interface TypeBroadcastSetFilterChildJobData {
5
+ child: string | string[];
6
+ clientName?: keyof ILoggerClientRecord;
7
+ }
8
+ export declare class BroadcastSetFilterChild extends BeanBroadcastBase<TypeBroadcastSetFilterChildJobData> implements IBroadcastExecute<TypeBroadcastSetFilterChildJobData> {
9
+ execute(data: TypeBroadcastSetFilterChildJobData, isEmitter?: boolean): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=broadcast.setFilterChild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.setFilterChild.d.ts","sourceRoot":"","sources":["../../src/bean/broadcast.setFilterChild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAa,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,mBAAmB,CAAC;CACxC;AAED,qBACa,uBACX,SAAQ,iBAAiB,CAAC,kCAAkC,CAC5D,YAAW,iBAAiB,CAAC,kCAAkC,CAAC;IAE1D,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAAE,SAAS,CAAC,EAAE,OAAO;CAK5E"}
@@ -0,0 +1,11 @@
1
+ import type { ILoggerClientRecord, LoggerLevel } from 'vona';
2
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
3
+ import { BeanBroadcastBase } from 'vona-module-a-broadcast';
4
+ export interface TypeBroadcastSetFilterLevelJobData {
5
+ level: LoggerLevel | boolean;
6
+ clientName?: keyof ILoggerClientRecord;
7
+ }
8
+ export declare class BroadcastSetFilterLevel extends BeanBroadcastBase<TypeBroadcastSetFilterLevelJobData> implements IBroadcastExecute<TypeBroadcastSetFilterLevelJobData> {
9
+ execute(data: TypeBroadcastSetFilterLevelJobData, isEmitter?: boolean): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=broadcast.setFilterLevel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.setFilterLevel.d.ts","sourceRoot":"","sources":["../../src/bean/broadcast.setFilterLevel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAa,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,mBAAmB,CAAC;CACxC;AAED,qBACa,uBACX,SAAQ,iBAAiB,CAAC,kCAAkC,CAC5D,YAAW,iBAAiB,CAAC,kCAAkC,CAAC;IAE1D,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAAE,SAAS,CAAC,EAAE,OAAO;CAK5E"}
@@ -6,3 +6,4 @@ export interface IMiddlewareSystemOptionsHttpLog extends IDecoratorMiddlewareSys
6
6
  export declare class MiddlewareSystemHttpLog extends BeanBase implements IMiddlewareSystemExecute {
7
7
  execute(_options: IMiddlewareSystemOptionsHttpLog, next: Next): Promise<void>;
8
8
  }
9
+ //# sourceMappingURL=middlewareSystem.httpLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewareSystem.httpLog.d.ts","sourceRoot":"","sources":["../../src/bean/middlewareSystem.httpLog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,WAAW,+BAAgC,SAAQ,iCAAiC;CAAG;AAE7F,qBACa,uBAAwB,SAAQ,QAAS,YAAW,wBAAwB;IACjF,OAAO,CAAC,QAAQ,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI;CAgBpE"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './types/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- import { BeanInfo, BeanBase, BeanAopMethodBase, SymbolBeanFullName, formatLoggerFilter, formatLoggerDummy, formatLoggerConsole, BeanSimple, combineConfigDefault, deepExtend, BeanScopeBase } from 'vona';
1
+ import { BeanInfo, BeanBase, BeanAopMethodBase, SymbolBeanFullName, formatLoggerAxiosError, formatLoggerCtx, formatLoggerFilter, formatLoggerDummy, formatLoggerConsole, BeanSimple, combineConfigDefault, deepExtend, BeanScopeBase } from 'vona';
2
+ import { __decorate } from 'tslib';
2
3
  import StdSerializers from 'pino-std-serializers';
3
4
  import { MiddlewareSystem, AopMethod } from 'vona-module-a-aspect';
4
5
  import { evaluateExpressions } from '@cabloy/utils';
@@ -6,10 +7,7 @@ import { Bean, Scope } from 'vona-module-a-bean';
6
7
  import * as Winston from 'winston';
7
8
  import { Broadcast, BeanBroadcastBase } from 'vona-module-a-broadcast';
8
9
 
9
- var _dec$4, _dec2$4, _class$4;
10
- let MiddlewareSystemHttpLog = (_dec$4 = MiddlewareSystem(), _dec2$4 = BeanInfo({
11
- module: "a-logger"
12
- }), _dec$4(_class$4 = _dec2$4(_class$4 = class MiddlewareSystemHttpLog extends BeanBase {
10
+ let MiddlewareSystemHttpLog = class MiddlewareSystemHttpLog extends BeanBase {
13
11
  async execute(_options, next) {
14
12
  const ctx = this.ctx;
15
13
  // start
@@ -29,14 +27,12 @@ let MiddlewareSystemHttpLog = (_dec$4 = MiddlewareSystem(), _dec2$4 = BeanInfo({
29
27
  message: JSON.stringify(res)
30
28
  });
31
29
  }
32
- }) || _class$4) || _class$4);
33
-
34
- var _dec$3, _dec2$3, _class$3;
35
- let AopMethodLog = (_dec$3 = AopMethod({
36
- level: 'info'
37
- }), _dec2$3 = BeanInfo({
30
+ };
31
+ MiddlewareSystemHttpLog = __decorate([MiddlewareSystem(), BeanInfo({
38
32
  module: "a-logger"
39
- }), _dec$3(_class$3 = _dec2$3(_class$3 = class AopMethodLog extends BeanAopMethodBase {
33
+ })], MiddlewareSystemHttpLog);
34
+
35
+ let AopMethodLog = class AopMethodLog extends BeanAopMethodBase {
40
36
  get(options, next, receiver, prop) {
41
37
  const context = this._getContext(options, receiver);
42
38
  const message = `${receiver[SymbolBeanFullName]}#${prop}(get)`;
@@ -137,22 +133,34 @@ let AopMethodLog = (_dec$3 = AopMethod({
137
133
  if (context) info.context = context;
138
134
  profiler.done(info);
139
135
  }
140
- }) || _class$3) || _class$3);
141
-
142
- var _dec$2, _dec2$2, _class$2;
143
- let BeanLogger = (_dec$2 = Bean(), _dec2$2 = BeanInfo({
136
+ };
137
+ AopMethodLog = __decorate([AopMethod({
138
+ level: 'info'
139
+ }), BeanInfo({
144
140
  module: "a-logger"
145
- }), _dec$2(_class$2 = _dec2$2(_class$2 = class BeanLogger extends BeanBase {
146
- getLevel(clientName) {
147
- return this.app.meta.logger.getLevel(clientName);
141
+ })], AopMethodLog);
142
+
143
+ let BeanLogger = class BeanLogger extends BeanBase {
144
+ getFilterLevel(clientName) {
145
+ return this.app.meta.logger.getFilterLevel(clientName);
148
146
  }
149
- setLevel(level, clientName) {
150
- this.app.meta.logger.setLevel(level, clientName);
151
- this.scope.broadcast.setLevel.emit({
147
+ setFilterLevel(level, clientName) {
148
+ this.app.meta.logger.setFilterLevel(level, clientName);
149
+ this.scope.broadcast.setFilterLevel.emit({
152
150
  level,
153
151
  clientName
154
152
  });
155
153
  }
154
+ getFilterChild(clientName) {
155
+ return this.app.meta.logger.getFilterChild(clientName);
156
+ }
157
+ setFilterChild(child, clientName) {
158
+ this.app.meta.logger.setFilterChild(child, clientName);
159
+ this.scope.broadcast.setFilterChild.emit({
160
+ child,
161
+ clientName
162
+ });
163
+ }
156
164
  get default() {
157
165
  return this.app.meta.logger.get();
158
166
  }
@@ -164,10 +172,14 @@ let BeanLogger = (_dec$2 = Bean(), _dec2$2 = BeanInfo({
164
172
  name: childName
165
173
  });
166
174
  }
167
- makeTransportFile(clientInfo, fileName, levelStrict) {
175
+ makeFormatBase(opts) {
176
+ return Winston.format.combine(formatLoggerAxiosError(opts), formatLoggerCtx(), Winston.format.errors(opts), Winston.format.splat(), Winston.format.timestamp());
177
+ }
178
+ makeTransportFile(clientInfo, fileName, levelStrict, childStrict) {
168
179
  return this.app.meta.logger.createTransportFile(fileName, clientInfo, {
169
180
  level: levelStrict ?? 'silly',
170
181
  format: Winston.format.combine(formatLoggerFilter({
182
+ child: childStrict ?? clientInfo.child,
171
183
  level: levelStrict ?? clientInfo.level,
172
184
  strict: !!levelStrict
173
185
  }), Winston.format.json())
@@ -177,26 +189,41 @@ let BeanLogger = (_dec$2 = Bean(), _dec2$2 = BeanInfo({
177
189
  return new Winston.transports.Console({
178
190
  level: 'silly',
179
191
  format: Winston.format.combine(formatLoggerDummy(), formatLoggerFilter({
192
+ child: clientInfo.child,
180
193
  level: clientInfo.level,
181
194
  silly: true
182
195
  }), Winston.format.colorize(), formatLoggerConsole(clientInfo)),
183
196
  forceConsole: true
184
197
  });
185
198
  }
186
- }) || _class$2) || _class$2);
199
+ };
200
+ BeanLogger = __decorate([Bean(), BeanInfo({
201
+ module: "a-logger"
202
+ })], BeanLogger);
187
203
 
188
- var _dec$1, _dec2$1, _class$1;
189
- let BroadcastSetLevel = (_dec$1 = Broadcast({
190
- instance: false
191
- }), _dec2$1 = BeanInfo({
204
+ let BroadcastSetFilterChild = class BroadcastSetFilterChild extends BeanBroadcastBase {
205
+ async execute(data, isEmitter) {
206
+ if (!isEmitter) {
207
+ this.app.meta.logger.setFilterChild(data.child, data.clientName);
208
+ }
209
+ }
210
+ };
211
+ BroadcastSetFilterChild = __decorate([Broadcast(), BeanInfo({
192
212
  module: "a-logger"
193
- }), _dec$1(_class$1 = _dec2$1(_class$1 = class BroadcastSetLevel extends BeanBroadcastBase {
213
+ })], BroadcastSetFilterChild);
214
+
215
+ let BroadcastSetFilterLevel = class BroadcastSetFilterLevel extends BeanBroadcastBase {
194
216
  async execute(data, isEmitter) {
195
217
  if (!isEmitter) {
196
- this.app.meta.logger.setLevel(data.level, data.clientName);
218
+ this.app.meta.logger.setFilterLevel(data.level, data.clientName);
197
219
  }
198
220
  }
199
- }) || _class$1) || _class$1);
221
+ };
222
+ BroadcastSetFilterLevel = __decorate([Broadcast({
223
+ instance: false
224
+ }), BeanInfo({
225
+ module: "a-logger"
226
+ })], BroadcastSetFilterLevel);
200
227
 
201
228
  class Main extends BeanSimple {
202
229
  async moduleLoading() {
@@ -211,11 +238,11 @@ async function configDefault(_app) {
211
238
  return {};
212
239
  }
213
240
 
214
- var _dec, _dec2, _class;
215
- let ScopeModuleALogger = (_dec = Scope(), _dec2 = BeanInfo({
241
+ let ScopeModuleALogger = class ScopeModuleALogger extends BeanScopeBase {};
242
+ ScopeModuleALogger = __decorate([Scope(), BeanInfo({
216
243
  module: "a-logger"
217
- }), _dec(_class = _dec2(_class = class ScopeModuleALogger extends BeanScopeBase {}) || _class) || _class);
218
-
244
+ })], ScopeModuleALogger);
219
245
  /** scope: end */
220
246
 
221
- export { AopMethodLog, BeanLogger, BroadcastSetLevel, Main, MiddlewareSystemHttpLog, ScopeModuleALogger, configDefault };
247
+ export { AopMethodLog, BeanLogger, BroadcastSetFilterChild, BroadcastSetFilterLevel, Main, MiddlewareSystemHttpLog, ScopeModuleALogger, configDefault };
248
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/bean/middlewareSystem.httpLog.ts","../src/bean/aopMethod.log.ts","../src/bean/bean.logger.ts","../src/bean/broadcast.setFilterChild.ts","../src/bean/broadcast.setFilterLevel.ts","../src/main.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["MiddlewareSystemHttpLog","BeanBase","execute","_options","next","ctx","req","StdSerializers","$loggerChild","http","JSON","stringify","profiler","startTimer","res","url","statusCode","headers","getHeaders","done","level","message","__decorate","MiddlewareSystem","__z_BeanInfo","module","AopMethodLog","BeanAopMethodBase","get","options","receiver","prop","context","_getContext","SymbolBeanFullName","logger","app","meta","child","childName","clientName","_logResult","err","_logError","set","value","_logValue","_args","args","log","undefined","then","result","catch","evaluateExpressions","self","info","textValue","textResult","textError","AopMethod","BeanLogger","getFilterLevel","setFilterLevel","scope","broadcast","emit","getFilterChild","setFilterChild","default","getChild","name","makeFormatBase","opts","Winston","format","combine","formatLoggerAxiosError","formatLoggerCtx","errors","splat","timestamp","makeTransportFile","clientInfo","fileName","levelStrict","childStrict","createTransportFile","formatLoggerFilter","strict","json","makeTransportConsole","transports","Console","formatLoggerDummy","silly","colorize","formatLoggerConsole","forceConsole","Bean","BroadcastSetFilterChild","BeanBroadcastBase","data","isEmitter","Broadcast","BroadcastSetFilterLevel","instance","Main","BeanSimple","moduleLoading","_configDefault","combineConfigDefault","configDefault","config","deepExtend","moduleLoaded","configLoaded","_config","_app","ScopeModuleALogger","BeanScopeBase","Scope"],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -6,3 +6,4 @@ export declare class Main extends BeanSimple implements IModuleMain {
6
6
  configLoaded(_config: any): Promise<void>;
7
7
  }
8
8
  export declare function configDefault(_app: VonaApplication): Promise<PowerPartial<ConfigLogger>>;
9
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAErF,OAAO,EAAE,UAAU,EAAoC,MAAM,MAAM,CAAC;AAEpE,qBAAa,IAAK,SAAQ,UAAW,YAAW,WAAW;IACnD,aAAa;IAMb,YAAY;IACZ,YAAY,CAAC,OAAO,EAAE,GAAG;CAChC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAE9F"}
@@ -1 +1,2 @@
1
1
  export * from './logger.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -5,3 +5,4 @@ declare module 'vona' {
5
5
  }
6
6
  }
7
7
  export {};
8
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,GAAG,EAAE,KAAK,CAAC;QACX,GAAG,EAAE,KAAK,CAAC;KACZ;CACF"}
package/package.json CHANGED
@@ -1,20 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-logger",
3
- "type": "module",
4
- "version": "5.0.33",
5
- "title": "a-logger",
6
- "vonaModule": {
7
- "dependencies": {},
8
- "globalDependencies": {
9
- "winston": true,
10
- "winston-transport": true
11
- }
12
- },
3
+ "version": "5.1.1",
13
4
  "description": "",
14
- "author": "",
15
5
  "keywords": [
16
6
  "Vona Module"
17
7
  ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
18
15
  "exports": {
19
16
  ".": {
20
17
  "types": [
@@ -25,10 +22,13 @@
25
22
  },
26
23
  "./package.json": "./package.json"
27
24
  },
28
- "files": [
29
- "assets",
30
- "dist"
31
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
32
32
  "dependencies": {
33
33
  "pino-std-serializers": "^7.0.0",
34
34
  "winston": "^3.18.3",
@@ -38,8 +38,13 @@
38
38
  "clean-package": "^2.2.0",
39
39
  "rimraf": "^6.0.1"
40
40
  },
41
- "scripts": {
42
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
43
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
44
- }
45
- }
41
+ "title": "a-logger",
42
+ "vonaModule": {
43
+ "dependencies": {},
44
+ "globalDependencies": {
45
+ "winston": true,
46
+ "winston-transport": true
47
+ }
48
+ },
49
+ "gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
50
+ }
@@ -0,0 +1,157 @@
1
+ // eslint-disable
2
+ /** middlewareSystem: begin */
3
+ export * from '../bean/middlewareSystem.httpLog.ts';
4
+ import type { IMiddlewareSystemOptionsHttpLog } from '../bean/middlewareSystem.httpLog.ts';
5
+ import 'vona-module-a-aspect';
6
+ declare module 'vona-module-a-aspect' {
7
+
8
+ export interface IMiddlewareSystemRecord {
9
+ 'a-logger:httpLog': IMiddlewareSystemOptionsHttpLog;
10
+ }
11
+
12
+
13
+ }
14
+ declare module 'vona-module-a-logger' {
15
+
16
+ export interface MiddlewareSystemHttpLog {
17
+ /** @internal */
18
+ get scope(): ScopeModuleALogger;
19
+ }
20
+
21
+ export interface MiddlewareSystemHttpLog {
22
+ get $beanFullName(): 'a-logger.middlewareSystem.httpLog';
23
+ get $onionName(): 'a-logger:httpLog';
24
+ get $onionOptions(): IMiddlewareSystemOptionsHttpLog;
25
+ }
26
+ }
27
+ /** middlewareSystem: end */
28
+ /** aopMethod: begin */
29
+ export * from '../bean/aopMethod.log.ts';
30
+ import type { IAopMethodOptionsLog } from '../bean/aopMethod.log.ts';
31
+ import 'vona-module-a-aspect';
32
+ declare module 'vona-module-a-aspect' {
33
+
34
+ export interface IAopMethodRecord {
35
+ 'a-logger:log': IAopMethodOptionsLog;
36
+ }
37
+
38
+
39
+ }
40
+ declare module 'vona-module-a-logger' {
41
+
42
+ export interface AopMethodLog {
43
+ /** @internal */
44
+ get scope(): ScopeModuleALogger;
45
+ }
46
+
47
+ export interface AopMethodLog {
48
+ get $beanFullName(): 'a-logger.aopMethod.log';
49
+ get $onionName(): 'a-logger:log';
50
+ get $onionOptions(): IAopMethodOptionsLog;
51
+ }
52
+ }
53
+ /** aopMethod: end */
54
+ /** bean: begin */
55
+ export * from '../bean/bean.logger.ts';
56
+
57
+ import 'vona';
58
+ declare module 'vona' {
59
+
60
+
61
+ }
62
+ declare module 'vona-module-a-logger' {
63
+
64
+ export interface BeanLogger {
65
+ /** @internal */
66
+ get scope(): ScopeModuleALogger;
67
+ }
68
+ }
69
+ /** bean: end */
70
+ /** bean: begin */
71
+ import type { BeanLogger } from '../bean/bean.logger.ts';
72
+ import 'vona';
73
+ declare module 'vona' {
74
+ export interface IBeanRecordGlobal {
75
+ 'logger': BeanLogger;
76
+ }
77
+ }
78
+ /** bean: end */
79
+ /** broadcast: begin */
80
+ export * from '../bean/broadcast.setFilterChild.ts';
81
+ export * from '../bean/broadcast.setFilterLevel.ts';
82
+
83
+ import { type IDecoratorBroadcastOptions } from 'vona-module-a-broadcast';
84
+ declare module 'vona-module-a-broadcast' {
85
+
86
+ export interface IBroadcastRecord {
87
+ 'a-logger:setFilterChild': IDecoratorBroadcastOptions;
88
+ 'a-logger:setFilterLevel': IDecoratorBroadcastOptions;
89
+ }
90
+
91
+
92
+ }
93
+ declare module 'vona-module-a-logger' {
94
+
95
+ export interface BroadcastSetFilterChild {
96
+ /** @internal */
97
+ get scope(): ScopeModuleALogger;
98
+ }
99
+
100
+ export interface BroadcastSetFilterChild {
101
+ get $beanFullName(): 'a-logger.broadcast.setFilterChild';
102
+ get $onionName(): 'a-logger:setFilterChild';
103
+ get $onionOptions(): IDecoratorBroadcastOptions;
104
+ }
105
+
106
+ export interface BroadcastSetFilterLevel {
107
+ /** @internal */
108
+ get scope(): ScopeModuleALogger;
109
+ }
110
+
111
+ export interface BroadcastSetFilterLevel {
112
+ get $beanFullName(): 'a-logger.broadcast.setFilterLevel';
113
+ get $onionName(): 'a-logger:setFilterLevel';
114
+ get $onionOptions(): IDecoratorBroadcastOptions;
115
+ }
116
+ }
117
+ /** broadcast: end */
118
+ /** broadcast: begin */
119
+ import type { BroadcastSetFilterChild } from '../bean/broadcast.setFilterChild.ts';
120
+ import type { BroadcastSetFilterLevel } from '../bean/broadcast.setFilterLevel.ts';
121
+ export interface IModuleBroadcast {
122
+ 'setFilterChild': BroadcastSetFilterChild;
123
+ 'setFilterLevel': BroadcastSetFilterLevel;
124
+ }
125
+ /** broadcast: end */
126
+ /** main: begin */
127
+ export * from '../main.ts';
128
+ /** main: end */
129
+ /** scope: begin */
130
+ import { BeanScopeBase, type BeanScopeUtil } from 'vona';
131
+ import { Scope } from 'vona-module-a-bean';
132
+
133
+ @Scope()
134
+ export class ScopeModuleALogger extends BeanScopeBase {}
135
+
136
+ export interface ScopeModuleALogger {
137
+ util: BeanScopeUtil;
138
+ broadcast: IModuleBroadcast;
139
+ }
140
+
141
+ import 'vona';
142
+ declare module 'vona' {
143
+ export interface IBeanScopeRecord {
144
+ 'a-logger': ScopeModuleALogger;
145
+ }
146
+
147
+ export interface IBeanScopeContainer {
148
+ logger: ScopeModuleALogger;
149
+ }
150
+
151
+
152
+
153
+
154
+
155
+
156
+ }
157
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-logger';
2
+ export { ScopeModuleALogger as ScopeModule } from './index.ts';
@@ -0,0 +1,126 @@
1
+ import type { ILoggerChildRecord, ILoggerClientRecord, LoggerLevel, Next, NextSync } from 'vona';
2
+ import type { IAopMethodExecute, IAopMethodGet, IAopMethodSet, IDecoratorAopMethodOptions } from 'vona-module-a-aspect';
3
+ import type winston from 'winston';
4
+
5
+ import { evaluateExpressions } from '@cabloy/utils';
6
+ import { BeanAopMethodBase, SymbolBeanFullName } from 'vona';
7
+ import { AopMethod } from 'vona-module-a-aspect';
8
+
9
+ export interface IAopMethodOptionsLog extends IDecoratorAopMethodOptions {
10
+ level: LoggerLevel;
11
+ childName?: keyof ILoggerChildRecord;
12
+ clientName?: keyof ILoggerClientRecord;
13
+ args?: boolean;
14
+ result?: boolean;
15
+ context?: Record<string, any>;
16
+ }
17
+
18
+ @AopMethod<IAopMethodOptionsLog>({
19
+ level: 'info',
20
+ })
21
+ export class AopMethodLog extends BeanAopMethodBase implements IAopMethodGet, IAopMethodSet, IAopMethodExecute {
22
+ get(options: IAopMethodOptionsLog, next: NextSync, receiver: any, prop: string): any {
23
+ const context = this._getContext(options, receiver);
24
+ const message = `${receiver[SymbolBeanFullName]}#${prop}(get)`;
25
+ const logger = this.app.meta.logger.child(options.childName, options.clientName);
26
+ // begin
27
+ const profiler = logger.startTimer();
28
+ // next
29
+ try {
30
+ const res = next();
31
+ this._logResult(profiler, context, res, options, message);
32
+ return res;
33
+ } catch (err: any) {
34
+ this._logError(profiler, context, err, options, message);
35
+ throw err;
36
+ }
37
+ }
38
+
39
+ set(options: IAopMethodOptionsLog, value: any, next: NextSync, receiver: any, prop: string): boolean {
40
+ const context = this._getContext(options, receiver);
41
+ const message = `${receiver[SymbolBeanFullName]}#${prop}(set)`;
42
+ const logger = this.app.meta.logger.child(options.childName, options.clientName);
43
+ // begin
44
+ const profiler = logger.startTimer();
45
+ // next
46
+ try {
47
+ const res = next();
48
+ this._logValue(profiler, context, value, options, message);
49
+ return res;
50
+ } catch (err: any) {
51
+ this._logError(profiler, context, err, options, message);
52
+ throw err;
53
+ }
54
+ }
55
+
56
+ execute(options: IAopMethodOptionsLog, _args: [], next: Next | NextSync, receiver: any, prop: string): Promise<any> | any {
57
+ const context = this._getContext(options, receiver);
58
+ const message = `${receiver[SymbolBeanFullName]}#${prop}`;
59
+ const logger = this.app.meta.logger.child(options.childName, options.clientName);
60
+ // begin
61
+ options.args !== false && logger.log(options.level, () => `${message} args: ${JSON.stringify(_args)}`, context ? { context } : undefined);
62
+ const profiler = logger.startTimer();
63
+ // next
64
+ try {
65
+ const res = next();
66
+ if (res?.then) {
67
+ return res
68
+ .then((res: any) => {
69
+ options.result !== false && this._logResult(profiler, context, res, options, message);
70
+ return res;
71
+ })
72
+ .catch((err: Error) => {
73
+ this._logError(profiler, context, err, options, message);
74
+ throw err;
75
+ });
76
+ }
77
+ options.result !== false && this._logResult(profiler, context, res, options, message);
78
+ return res;
79
+ } catch (err: any) {
80
+ this._logError(profiler, context, err, options, message);
81
+ throw err;
82
+ }
83
+ }
84
+
85
+ _getContext(options: IAopMethodOptionsLog, receiver: any) {
86
+ return evaluateExpressions(options.context, {
87
+ self: { ...receiver },
88
+ });
89
+ }
90
+
91
+ _logValue(profiler: winston.Profiler, context: any, value: any, options: IAopMethodOptionsLog, message: string) {
92
+ const info: any = {
93
+ level: options.level,
94
+ message: () => {
95
+ const textValue = ` value: ${JSON.stringify(value)}`;
96
+ return `${message}${textValue}`;
97
+ },
98
+ };
99
+ if (context) info.context = context;
100
+ profiler.done(info);
101
+ }
102
+
103
+ _logResult(profiler: winston.Profiler, context: any, res: any, options: IAopMethodOptionsLog, message: string) {
104
+ const info: any = {
105
+ level: options.level,
106
+ message: () => {
107
+ const textResult = res !== undefined ? ` result: ${JSON.stringify(res)}` : '';
108
+ return `${message}${textResult}`;
109
+ },
110
+ };
111
+ if (context) info.context = context;
112
+ profiler.done(info);
113
+ }
114
+
115
+ _logError(profiler: winston.Profiler, context: any, err: Error, _options: IAopMethodOptionsLog, message: string) {
116
+ const info: any = {
117
+ level: 'error',
118
+ message: () => {
119
+ const textError = ` error: ${err.message}`;
120
+ return `${message}${textError}`;
121
+ },
122
+ };
123
+ if (context) info.context = context;
124
+ profiler.done(info);
125
+ }
126
+ }
@@ -0,0 +1,78 @@
1
+ import type { ILoggerChildRecord, ILoggerClientRecord, ILoggerOptionsClientInfo, LoggerLevel } from 'vona';
2
+ import type { ILoggerFormatOpts } from 'vona';
3
+ import type * as Transport from 'winston-transport';
4
+
5
+ import { BeanBase, formatLoggerAxiosError, formatLoggerConsole, formatLoggerCtx, formatLoggerDummy, formatLoggerFilter } from 'vona';
6
+ import { Bean } from 'vona-module-a-bean';
7
+ import * as Winston from 'winston';
8
+
9
+ @Bean()
10
+ export class BeanLogger extends BeanBase {
11
+ public getFilterLevel(clientName?: keyof ILoggerClientRecord): LoggerLevel | false {
12
+ return this.app.meta.logger.getFilterLevel(clientName);
13
+ }
14
+
15
+ public setFilterLevel(level: LoggerLevel | boolean, clientName?: keyof ILoggerClientRecord) {
16
+ this.app.meta.logger.setFilterLevel(level, clientName);
17
+ this.scope.broadcast.setFilterLevel.emit({ level, clientName });
18
+ }
19
+
20
+ public getFilterChild(clientName?: keyof ILoggerClientRecord): string[] | undefined {
21
+ return this.app.meta.logger.getFilterChild(clientName);
22
+ }
23
+
24
+ public setFilterChild(child: string | string[], clientName?: keyof ILoggerClientRecord) {
25
+ this.app.meta.logger.setFilterChild(child, clientName);
26
+ this.scope.broadcast.setFilterChild.emit({ child, clientName });
27
+ }
28
+
29
+ public get default(): Winston.Logger {
30
+ return this.app.meta.logger.get();
31
+ }
32
+
33
+ public get(clientName?: keyof ILoggerClientRecord): Winston.Logger {
34
+ return this.app.meta.logger.get(clientName);
35
+ }
36
+
37
+ public getChild(childName: keyof ILoggerChildRecord, clientName?: keyof ILoggerClientRecord): Winston.Logger {
38
+ return this.app.meta.logger.get(clientName).child({ name: childName });
39
+ }
40
+
41
+ public makeFormatBase(opts: ILoggerFormatOpts) {
42
+ return Winston.format.combine(
43
+ formatLoggerAxiosError(opts),
44
+ formatLoggerCtx(),
45
+ Winston.format.errors(opts),
46
+ Winston.format.splat(),
47
+ Winston.format.timestamp(),
48
+ );
49
+ }
50
+
51
+ public makeTransportFile(
52
+ clientInfo: ILoggerOptionsClientInfo,
53
+ fileName: string,
54
+ levelStrict?: LoggerLevel,
55
+ childStrict?: string | string[],
56
+ ): Transport {
57
+ return this.app.meta.logger.createTransportFile(fileName, clientInfo, {
58
+ level: levelStrict ?? 'silly',
59
+ format: Winston.format.combine(
60
+ formatLoggerFilter({ child: childStrict ?? clientInfo.child, level: levelStrict ?? clientInfo.level, strict: !!levelStrict }),
61
+ Winston.format.json(),
62
+ ),
63
+ });
64
+ }
65
+
66
+ public makeTransportConsole(clientInfo: ILoggerOptionsClientInfo): Transport {
67
+ return new Winston.transports.Console({
68
+ level: 'silly',
69
+ format: Winston.format.combine(
70
+ formatLoggerDummy(),
71
+ formatLoggerFilter({ child: clientInfo.child, level: clientInfo.level, silly: true }),
72
+ Winston.format.colorize(),
73
+ formatLoggerConsole(clientInfo),
74
+ ),
75
+ forceConsole: true,
76
+ });
77
+ }
78
+ }
@@ -0,0 +1,21 @@
1
+ import type { ILoggerClientRecord } from 'vona';
2
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
3
+
4
+ import { BeanBroadcastBase, Broadcast } from 'vona-module-a-broadcast';
5
+
6
+ export interface TypeBroadcastSetFilterChildJobData {
7
+ child: string | string[];
8
+ clientName?: keyof ILoggerClientRecord;
9
+ }
10
+
11
+ @Broadcast()
12
+ export class BroadcastSetFilterChild
13
+ extends BeanBroadcastBase<TypeBroadcastSetFilterChildJobData>
14
+ implements IBroadcastExecute<TypeBroadcastSetFilterChildJobData>
15
+ {
16
+ async execute(data: TypeBroadcastSetFilterChildJobData, isEmitter?: boolean) {
17
+ if (!isEmitter) {
18
+ this.app.meta.logger.setFilterChild(data.child, data.clientName);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ import type { ILoggerClientRecord, LoggerLevel } from 'vona';
2
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
3
+
4
+ import { BeanBroadcastBase, Broadcast } from 'vona-module-a-broadcast';
5
+
6
+ export interface TypeBroadcastSetFilterLevelJobData {
7
+ level: LoggerLevel | boolean;
8
+ clientName?: keyof ILoggerClientRecord;
9
+ }
10
+
11
+ @Broadcast({ instance: false })
12
+ export class BroadcastSetFilterLevel
13
+ extends BeanBroadcastBase<TypeBroadcastSetFilterLevelJobData>
14
+ implements IBroadcastExecute<TypeBroadcastSetFilterLevelJobData>
15
+ {
16
+ async execute(data: TypeBroadcastSetFilterLevelJobData, isEmitter?: boolean) {
17
+ if (!isEmitter) {
18
+ this.app.meta.logger.setFilterLevel(data.level, data.clientName);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,28 @@
1
+ import type { Next } from 'vona';
2
+ import type { IDecoratorMiddlewareSystemOptions, IMiddlewareSystemExecute } from 'vona-module-a-aspect';
3
+
4
+ import StdSerializers from 'pino-std-serializers';
5
+ import { BeanBase } from 'vona';
6
+ import { MiddlewareSystem } from 'vona-module-a-aspect';
7
+
8
+ export interface IMiddlewareSystemOptionsHttpLog extends IDecoratorMiddlewareSystemOptions {}
9
+
10
+ @MiddlewareSystem<IMiddlewareSystemOptionsHttpLog>()
11
+ export class MiddlewareSystemHttpLog extends BeanBase implements IMiddlewareSystemExecute {
12
+ async execute(_options: IMiddlewareSystemOptionsHttpLog, next: Next) {
13
+ const ctx = this.ctx;
14
+ // start
15
+ const req = StdSerializers.req(ctx.req);
16
+ this.$loggerChild('req').http(() => JSON.stringify(req));
17
+ const profiler = this.$loggerChild('res').startTimer();
18
+ // next
19
+ await next();
20
+ // end
21
+ const res = {
22
+ url: ctx.req.url,
23
+ statusCode: ctx.res.statusCode,
24
+ headers: ctx.res.getHeaders(),
25
+ };
26
+ profiler.done({ level: 'http', message: JSON.stringify(res) });
27
+ }
28
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './.metadata/index.ts';
2
+ export * from './types/index.ts';
package/src/main.ts ADDED
@@ -0,0 +1,18 @@
1
+ import type { ConfigLogger, IModuleMain, PowerPartial, VonaApplication } from 'vona';
2
+
3
+ import { BeanSimple, combineConfigDefault, deepExtend } from 'vona';
4
+
5
+ export class Main extends BeanSimple implements IModuleMain {
6
+ async moduleLoading() {
7
+ // config
8
+ const _configDefault = await combineConfigDefault<ConfigLogger>(this.app, configDefault);
9
+ this.app.config.logger = deepExtend({}, _configDefault, this.app.config.logger);
10
+ }
11
+
12
+ async moduleLoaded() {}
13
+ async configLoaded(_config: any) {}
14
+ }
15
+
16
+ export async function configDefault(_app: VonaApplication): Promise<PowerPartial<ConfigLogger>> {
17
+ return {};
18
+ }
@@ -0,0 +1 @@
1
+ export * from './logger.ts';
@@ -0,0 +1,6 @@
1
+ declare module 'vona' {
2
+ export interface ILoggerChildRecord {
3
+ req: never;
4
+ res: never;
5
+ }
6
+ }
@@ -1,10 +0,0 @@
1
- import type { ILoggerClientRecord, LoggerLevel } from 'vona';
2
- import type { IBroadcastExecute } from 'vona-module-a-broadcast';
3
- import { BeanBroadcastBase } from 'vona-module-a-broadcast';
4
- export interface TypeBroadcastSetLevelJobData {
5
- level: LoggerLevel | boolean;
6
- clientName?: keyof ILoggerClientRecord;
7
- }
8
- export declare class BroadcastSetLevel extends BeanBroadcastBase<TypeBroadcastSetLevelJobData> implements IBroadcastExecute<TypeBroadcastSetLevelJobData> {
9
- execute(data: TypeBroadcastSetLevelJobData, isEmitter?: boolean): Promise<void>;
10
- }