@hg-ts/logger 0.7.27 → 0.8.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 (42) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/logger/base.formatter.d.ts +4 -1
  5. package/dist/logger/base.formatter.d.ts.map +1 -1
  6. package/dist/logger/base.formatter.js +29 -20
  7. package/dist/logger/base.formatter.js.map +1 -1
  8. package/dist/logger/base.logger.d.ts +20 -9
  9. package/dist/logger/base.logger.d.ts.map +1 -1
  10. package/dist/logger/base.logger.js +114 -22
  11. package/dist/logger/base.logger.js.map +1 -1
  12. package/dist/logger/console.logger.d.ts.map +1 -1
  13. package/dist/logger/console.logger.js +8 -1
  14. package/dist/logger/console.logger.js.map +1 -1
  15. package/dist/logger/console.logger.test.d.ts +9 -0
  16. package/dist/logger/console.logger.test.d.ts.map +1 -0
  17. package/dist/logger/console.logger.test.js +42 -0
  18. package/dist/logger/console.logger.test.js.map +1 -0
  19. package/dist/logger/index.d.ts +1 -1
  20. package/dist/logger/index.d.ts.map +1 -1
  21. package/dist/logger/index.js +1 -1
  22. package/dist/logger/index.js.map +1 -1
  23. package/dist/logger/json.logger.test.d.ts +8 -0
  24. package/dist/logger/json.logger.test.d.ts.map +1 -0
  25. package/dist/logger/json.logger.test.js +45 -0
  26. package/dist/logger/json.logger.test.js.map +1 -0
  27. package/dist/logger/logger.d.ts +18 -8
  28. package/dist/logger/logger.d.ts.map +1 -1
  29. package/dist/logger/logger.js.map +1 -1
  30. package/dist/nest-wrapped.logger.d.ts.map +1 -1
  31. package/dist/nest-wrapped.logger.js +15 -6
  32. package/dist/nest-wrapped.logger.js.map +1 -1
  33. package/package.json +15 -8
  34. package/src/index.ts +3 -0
  35. package/src/logger/base.formatter.ts +43 -24
  36. package/src/logger/base.logger.ts +198 -23
  37. package/src/logger/console.logger.test.ts +56 -0
  38. package/src/logger/console.logger.ts +10 -1
  39. package/src/logger/index.ts +6 -1
  40. package/src/logger/json.logger.test.ts +59 -0
  41. package/src/logger/logger.ts +26 -8
  42. package/src/nest-wrapped.logger.ts +17 -6
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Logger, ConsoleLogger, JSONLogger, MockLogger, } from './logger/index.js';
1
+ export { Logger, ConsoleLogger, JSONLogger, MockLogger, type InlineMeta, type InlineMetaValue, type LogMeta, } from './logger/index.js';
2
2
  export * from './logger.module.js';
3
3
  export * from './trace.context.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,GACV,MAAM,mBAAmB,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,EACV,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,OAAO,GACZ,MAAM,mBAAmB,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,GACV,MAAM,mBAAmB,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,GAIV,MAAM,mBAAmB,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1,15 +1,18 @@
1
+ import { type JSONBaseException } from '@hg-ts/exception';
1
2
  import winston from 'winston';
2
3
  import { LogLevel } from './base.logger.js';
3
4
  export type LogMessage = winston.Logform.TransformableInfo & {
4
5
  context: Nullable<string>;
5
6
  message: string;
6
7
  level: LogLevel;
8
+ meta?: Record<string, unknown>;
9
+ error?: JSONBaseException;
10
+ traceId?: string;
7
11
  process: {
8
12
  pid: number;
9
13
  title: Nullable<string>;
10
14
  };
11
15
  timestamp: Date;
12
- items: unknown[];
13
16
  };
14
17
  export declare const baseFormatter: winston.Logform.FormatWrap;
15
18
  export declare function createFormatter(formatter: (info: LogMessage) => LogMessage): winston.Logform.FormatWrap;
@@ -1 +1 @@
1
- {"version":3,"file":"base.formatter.d.ts","sourceRoot":"","sources":["../../src/logger/base.formatter.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACN,QAAQ,EAER,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,GAAG;IAC5D,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;CACjB,CAAC;AAqBF,eAAO,MAAM,aAAa,4BAoBxB,CAAC;AAEH,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAEvG"}
1
+ {"version":3,"file":"base.formatter.d.ts","sourceRoot":"","sources":["../../src/logger/base.formatter.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,iBAAiB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACN,QAAQ,EAER,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,GAAG;IAC5D,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,IAAI,CAAC;CAChB,CAAC;AAsDF,eAAO,MAAM,aAAa,4BAA2C,CAAC;AAEtE,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAEvG"}
@@ -1,11 +1,28 @@
1
1
  import * as assert from 'node:assert';
2
+ import { BaseException, } from '@hg-ts/exception';
2
3
  import winston from 'winston';
3
4
  import { syslogToLoggerMap, } from './base.logger.js';
5
+ function serializeMeta(meta) {
6
+ if (!meta || typeof meta !== 'object' || Array.isArray(meta)) {
7
+ return null;
8
+ }
9
+ return meta;
10
+ }
11
+ function serializeError(error) {
12
+ if (!(error instanceof BaseException)) {
13
+ return null;
14
+ }
15
+ return error.toJSON();
16
+ }
4
17
  function getLogData(info) {
5
18
  const level = syslogToLoggerMap.get(info.level) ?? info.level;
6
19
  const context = info['context'] ?? null;
20
+ const meta = serializeMeta(info['meta']);
21
+ const error = serializeError(info['error']);
22
+ const { traceId } = info;
7
23
  assert.ok(typeof context === 'string' || context === null);
8
- return {
24
+ assert.ok(typeof traceId === 'string' || typeof traceId === 'undefined');
25
+ const logData = {
9
26
  level,
10
27
  context,
11
28
  process: {
@@ -13,28 +30,20 @@ function getLogData(info) {
13
30
  title: process.title.endsWith('node') ? null : process.title,
14
31
  },
15
32
  message: info.message,
16
- items: Array.isArray(info['items']) ? info['items'] : [info['items']],
17
33
  timestamp: new Date(),
18
34
  };
19
- }
20
- export const baseFormatter = winston.format(info => {
21
- const logData = getLogData(info);
22
- logData['items'] = logData.items
23
- .map(item => {
24
- if (typeof item === 'bigint') {
25
- return `${item}n`;
26
- }
27
- if (item instanceof Error && !('toJSON' in item)) {
28
- return {
29
- name: item.name,
30
- message: item.message,
31
- stack: item.stack,
32
- };
33
- }
34
- return item;
35
- });
35
+ if (meta) {
36
+ logData.meta = meta;
37
+ }
38
+ if (error) {
39
+ logData.error = error;
40
+ }
41
+ if (traceId) {
42
+ logData.traceId = traceId;
43
+ }
36
44
  return logData;
37
- });
45
+ }
46
+ export const baseFormatter = winston.format(info => getLogData(info));
38
47
  export function createFormatter(formatter) {
39
48
  return winston.format(formatter);
40
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.formatter.js","sourceRoot":"","sources":["../../src/logger/base.formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAEN,iBAAiB,GACjB,MAAM,kBAAkB,CAAC;AAc1B,SAAS,UAAU,CAAC,IAAuC;IAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAiB,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAExC,MAAM,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;IAE3D,OAAO;QACN,KAAK;QACL,OAAO;QACP,OAAO,EAAE;YACR,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;SAC5D;QACD,OAAO,EAAE,IAAI,CAAC,OAAiB;QAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,SAAS,EAAE,IAAI,IAAI,EAAE;KACrB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IAClD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE;QACX,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,GAAG,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,YAAY,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,SAA2C;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,SAAgB,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"base.formatter.js","sourceRoot":"","sources":["../../src/logger/base.formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EACN,aAAa,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAEN,iBAAiB,GACjB,MAAM,kBAAkB,CAAC;AAgB1B,SAAS,aAAa,CAAC,IAAa;IACnC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,IAA+B,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACrC,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,IAAuC;IAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAiB,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAe;QAC3B,KAAK;QACL,OAAO;QACP,OAAO,EAAE;YACR,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;SAC5D;QACD,OAAO,EAAE,IAAI,CAAC,OAAiB;QAC/B,SAAS,EAAE,IAAI,IAAI,EAAE;KACrB,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAEtE,MAAM,UAAU,eAAe,CAAC,SAA2C;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,SAAgB,CAAC,CAAC;AACzC,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { BaseException } from '@hg-ts/exception';
1
2
  import winston from 'winston';
2
3
  import { TraceContext } from '../trace.context.js';
3
- import { Logger } from './logger.js';
4
+ import { InlineMeta, Logger, LogMeta } from './logger.js';
4
5
  type Transport = winston.Logger['add'] extends (transport: infer R) => void ? R : never;
5
6
  export type LogLevel = keyof Omit<Logger, 'setContext'>;
6
7
  export declare const syslogToLoggerMap: Map<string, "debug" | "info" | "notice" | "warning" | "error" | "critical" | "alert" | "emergency">;
@@ -10,17 +11,27 @@ export declare abstract class BaseLogger implements Logger {
10
11
  private readonly logger;
11
12
  private readonly traceContext;
12
13
  protected constructor(logLevel: LogLevel, context: string, traceContext: TraceContext);
13
- debug(...messages: unknown[]): void;
14
- info(...messages: unknown[]): void;
15
- notice(...messages: unknown[]): void;
16
- warning(...messages: unknown[]): void;
17
- error(...messages: unknown[]): void;
18
- critical(...messages: unknown[]): void;
19
- alert(...messages: unknown[]): void;
20
- emergency(...messages: unknown[]): void;
14
+ debug(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
15
+ info(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
16
+ notice(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
17
+ warning(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
18
+ warning(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
19
+ error(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
20
+ error(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
21
+ critical(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
22
+ critical(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
23
+ alert(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
24
+ alert(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
25
+ emergency(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
26
+ emergency(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
21
27
  setContext(context: Nullable<string>): void;
22
28
  protected addTransport(transport: Transport): void;
29
+ private logErrorLevel;
23
30
  private log;
31
+ private normalizeErrorLogPayload;
32
+ private formatInlineMeta;
33
+ private formatInlineMetaValue;
34
+ private formatInlineMetaPrimitive;
24
35
  }
25
36
  export {};
26
37
  //# sourceMappingURL=base.logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.logger.d.ts","sourceRoot":"","sources":["../../src/logger/base.logger.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAExF,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB,qGAEL,CAAC;AAE1B,eAAO,MAAM,iBAAiB,qGAEL,CAAC;AAG1B,8BAAsB,UAAW,YAAW,MAAM;IACjD,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,SAAS,aAAa,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAc9E,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGnC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGlC,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGpC,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGrC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGnC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGtC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGnC,SAAS,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAIvC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAIlD,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIlD,OAAO,CAAC,GAAG;CAWX"}
1
+ {"version":3,"file":"base.logger.d.ts","sourceRoot":"","sources":["../../src/logger/base.logger.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { format } from 'node:util';
1
+ import { BaseException } from '@hg-ts/exception';
2
2
  import winston from 'winston';
3
3
  export const syslogToLoggerMap = new Map()
4
4
  .set('emerg', 'emergency')
@@ -22,29 +22,63 @@ export class BaseLogger {
22
22
  exitOnError: false,
23
23
  });
24
24
  }
25
- debug(...messages) {
26
- this.log('debug', messages);
25
+ debug(message, meta, inlineMeta) {
26
+ this.log('debug', message, {
27
+ meta,
28
+ inlineMeta,
29
+ });
27
30
  }
28
- info(...messages) {
29
- this.log('info', messages);
31
+ info(message, meta, inlineMeta) {
32
+ this.log('info', message, {
33
+ meta,
34
+ inlineMeta,
35
+ });
30
36
  }
31
- notice(...messages) {
32
- this.log('notice', messages);
37
+ notice(message, meta, inlineMeta) {
38
+ this.log('notice', message, {
39
+ meta,
40
+ inlineMeta,
41
+ });
33
42
  }
34
- warning(...messages) {
35
- this.log('warning', messages);
43
+ warning(errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta) {
44
+ this.logErrorLevel('warning', {
45
+ errorOrMessage,
46
+ messageOrMeta,
47
+ metaOrInlineMeta,
48
+ inlineMeta,
49
+ });
36
50
  }
37
- error(...messages) {
38
- this.log('error', messages);
51
+ error(errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta) {
52
+ this.logErrorLevel('error', {
53
+ errorOrMessage,
54
+ messageOrMeta,
55
+ metaOrInlineMeta,
56
+ inlineMeta,
57
+ });
39
58
  }
40
- critical(...messages) {
41
- this.log('critical', messages);
59
+ critical(errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta) {
60
+ this.logErrorLevel('critical', {
61
+ errorOrMessage,
62
+ messageOrMeta,
63
+ metaOrInlineMeta,
64
+ inlineMeta,
65
+ });
42
66
  }
43
- alert(...messages) {
44
- this.log('alert', messages);
67
+ alert(errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta) {
68
+ this.logErrorLevel('alert', {
69
+ errorOrMessage,
70
+ messageOrMeta,
71
+ metaOrInlineMeta,
72
+ inlineMeta,
73
+ });
45
74
  }
46
- emergency(...messages) {
47
- this.log('emergency', messages);
75
+ emergency(errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta) {
76
+ this.logErrorLevel('emergency', {
77
+ errorOrMessage,
78
+ messageOrMeta,
79
+ metaOrInlineMeta,
80
+ inlineMeta,
81
+ });
48
82
  }
49
83
  setContext(context) {
50
84
  this.context = context;
@@ -52,15 +86,73 @@ export class BaseLogger {
52
86
  addTransport(transport) {
53
87
  this.logger.add(transport);
54
88
  }
55
- log(level, messages) {
89
+ logErrorLevel(level, args) {
90
+ const payload = this.normalizeErrorLogPayload(args);
91
+ const options = {
92
+ meta: payload.meta,
93
+ inlineMeta: payload.inlineMeta,
94
+ };
95
+ if (payload.error) {
96
+ options.error = payload.error;
97
+ }
98
+ this.log(level, payload.message, options);
99
+ }
100
+ log(level, message, options) {
101
+ const { error, meta, inlineMeta, } = options;
56
102
  const mappedLevel = loggerToSyslogMap.get(level) ?? level;
57
- this.logger.log({
103
+ const payload = {
58
104
  level: mappedLevel,
59
- message: format(...messages),
60
- items: messages,
105
+ message: `${message}${this.formatInlineMeta(inlineMeta)}`,
61
106
  context: this.context,
62
107
  traceId: this.traceContext.get()?.traceId,
63
- });
108
+ };
109
+ if (meta) {
110
+ payload['meta'] = meta;
111
+ }
112
+ if (error) {
113
+ payload['error'] = error;
114
+ }
115
+ this.logger.log(payload);
116
+ }
117
+ normalizeErrorLogPayload(args) {
118
+ const { errorOrMessage, messageOrMeta, metaOrInlineMeta, inlineMeta, } = args;
119
+ if (errorOrMessage instanceof BaseException) {
120
+ return {
121
+ error: errorOrMessage,
122
+ message: messageOrMeta,
123
+ meta: metaOrInlineMeta,
124
+ inlineMeta,
125
+ };
126
+ }
127
+ return {
128
+ message: errorOrMessage,
129
+ meta: messageOrMeta,
130
+ inlineMeta: metaOrInlineMeta,
131
+ };
132
+ }
133
+ formatInlineMeta(inlineMeta) {
134
+ if (!inlineMeta || Object.keys(inlineMeta).length === 0) {
135
+ return '';
136
+ }
137
+ const items = Object
138
+ .entries(inlineMeta)
139
+ .map(([key, value]) => `${key}=${this.formatInlineMetaValue(value)}`);
140
+ return `: ${items.join(', ')}`;
141
+ }
142
+ formatInlineMetaValue(value) {
143
+ if (Array.isArray(value)) {
144
+ return `[${value.map(item => this.formatInlineMetaPrimitive(item)).join(',')}]`;
145
+ }
146
+ return this.formatInlineMetaPrimitive(value);
147
+ }
148
+ formatInlineMetaPrimitive(value) {
149
+ if (value instanceof Date) {
150
+ return value.toISOString();
151
+ }
152
+ if (Buffer.isBuffer(value)) {
153
+ return value.toString('base64');
154
+ }
155
+ return String(value);
64
156
  }
65
157
  }
66
158
  //# sourceMappingURL=base.logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.logger.js","sourceRoot":"","sources":["../../src/logger/base.logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,SAAS,CAAC;AAS9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB;KAC1D,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;KACzB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAE1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB;KAC1D,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;KACzB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAG1B,MAAM,OAAgB,UAAU;IACrB,OAAO,GAAqB,IAAI,CAAC;IAC1B,MAAM,CAAiB;IACvB,YAAY,CAAe;IAE5C,YAAsB,QAAkB,EAAE,OAAe,EAAE,YAA0B;QACpF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAClC,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;YACpC,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,KAAK;SAClB,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,GAAG,QAAmB;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACM,IAAI,CAAC,GAAG,QAAmB;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACM,MAAM,CAAC,GAAG,QAAmB;QACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACM,OAAO,CAAC,GAAG,QAAmB;QACpC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACM,KAAK,CAAC,GAAG,QAAmB;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACM,QAAQ,CAAC,GAAG,QAAmB;QACrC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IACM,KAAK,CAAC,GAAG,QAAmB;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACM,SAAS,CAAC,GAAG,QAAmB;QACtC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,OAAyB;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAES,YAAY,CAAC,SAAoB;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,QAAmB;QAC/C,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;YAC5B,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO;SACzC,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"base.logger.js","sourceRoot":"","sources":["../../src/logger/base.logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,OAAO,MAAM,SAAS,CAAC;AA0B9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB;KAC1D,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;KACzB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAE1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB;KAC1D,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;KACzB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAG1B,MAAM,OAAgB,UAAU;IACrB,OAAO,GAAqB,IAAI,CAAC;IAC1B,MAAM,CAAiB;IACvB,YAAY,CAAe;IAE5C,YAAsB,QAAkB,EAAE,OAAe,EAAE,YAA0B;QACpF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAClC,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;YACpC,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,KAAK;SAClB,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,IAAc,EAAE,UAAuB;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;YAC1B,IAAI;YACJ,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IACM,IAAI,CAAC,OAAe,EAAE,IAAc,EAAE,UAAuB;QACnE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;YACzB,IAAI;YACJ,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IACM,MAAM,CAAC,OAAe,EAAE,IAAc,EAAE,UAAuB;QACrE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE;YAC3B,IAAI;YACJ,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAIM,OAAO,CACb,cAAsC,EACtC,aAAgC,EAChC,gBAAuC,EACvC,UAAuB;QAEvB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAIM,KAAK,CACX,cAAsC,EACtC,aAAgC,EAChC,gBAAuC,EACvC,UAAuB;QAEvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC3B,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAIM,QAAQ,CACd,cAAsC,EACtC,aAAgC,EAChC,gBAAuC,EACvC,UAAuB;QAEvB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC9B,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAIM,KAAK,CACX,cAAsC,EACtC,aAAgC,EAChC,gBAAuC,EACvC,UAAuB;QAEvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC3B,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAIM,SAAS,CACf,cAAsC,EACtC,aAAgC,EAChC,gBAAuC,EACvC,UAAuB;QAEvB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAC/B,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAEM,UAAU,CAAC,OAAyB;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAES,YAAY,CAAC,SAAoB;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAEO,aAAa,CAAC,KAAe,EAAE,IAAqB;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAe;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,OAAmB;QAChE,MAAM,EACL,KAAK,EACL,IAAI,EACJ,UAAU,GACV,GAAG,OAAO,CAAC;QACZ,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAE1D,MAAM,OAAO,GAAqB;YACjC,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACzD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO;SACzC,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAEO,wBAAwB,CAAC,IAAqB;QACrD,MAAM,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,UAAU,GACV,GAAG,IAAI,CAAC;QAET,IAAI,cAAc,YAAY,aAAa,EAAE,CAAC;YAC7C,OAAO;gBACN,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,aAAuB;gBAChC,IAAI,EAAE,gBAA2B;gBACjC,UAAU;aACV,CAAC;QACH,CAAC;QAED,OAAO;YACN,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,aAAwB;YAC9B,UAAU,EAAE,gBAA8B;SAC1C,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,UAAgC;QACxD,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM;aAClB,OAAO,CAAC,UAAU,CAAC;aACnB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEvE,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,CAAC;IAEO,qBAAqB,CAAC,KAAmC;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,yBAAyB,CAAC,KAA0B;QAC3D,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"console.logger.d.ts","sourceRoot":"","sources":["../../src/logger/console.logger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EACN,UAAU,EAEV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,EAEL,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,SAAS,oGAQc,CAAC;AAiErC,qBAAa,aAAc,SAAQ,UAAU;gBACzB,YAAY,EAAE,YAAY;CAK7C"}
1
+ {"version":3,"file":"console.logger.d.ts","sourceRoot":"","sources":["../../src/logger/console.logger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EACN,UAAU,EAEV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,EAEL,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,SAAS,oGAQc,CAAC;AA0ErC,qBAAa,aAAc,SAAQ,UAAU;gBACzB,YAAY,EAAE,YAAY;CAK7C"}
@@ -38,12 +38,19 @@ function formatTraceId(traceId) {
38
38
  function formatTime(time) {
39
39
  return time.toLocaleString('ru-RU');
40
40
  }
41
+ function formatMeta(meta) {
42
+ if (!meta || Object.keys(meta).length === 0) {
43
+ return '';
44
+ }
45
+ return ` ${JSON.stringify(meta)}`;
46
+ }
41
47
  const customFormat = createFormatter(info => {
42
48
  const process = formatProcess(info.process);
43
49
  const timestamp = formatTime(info.timestamp);
44
50
  const context = colorizeContext(info.context);
45
51
  const level = colorizeLevel(info.level);
46
- const message = colorizeMessage(info.level, info.message);
52
+ const rawMessage = `${info.message}${formatMeta(info.meta)}`;
53
+ const message = colorizeMessage(info.level, rawMessage);
47
54
  const traceId = info['traceId'] ? formatTraceId(info['traceId']) : null;
48
55
  const metaInfoItems = [timestamp, context, level, process];
49
56
  if (traceId) {
@@ -1 +1 @@
1
- {"version":3,"file":"console.logger.js","sourceRoot":"","sources":["../../src/logger/console.logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.logger.js","sourceRoot":"","sources":["../../src/logger/console.logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Suite } from '@hg-ts/tests';
2
+ export declare class ConsoleLoggerTest extends Suite {
3
+ private output;
4
+ writesMessageInlineMetaAndMetaToStdout(): Promise<void>;
5
+ beforeEach(): Promise<void>;
6
+ afterEach(): Promise<void>;
7
+ private getOutput;
8
+ }
9
+ //# sourceMappingURL=console.logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.logger.test.d.ts","sourceRoot":"","sources":["../../src/logger/console.logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,iBAAkB,SAAQ,KAAK;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAGjB,sCAAsC,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,OAAO,CAAC,SAAS;CAGjB"}
@@ -0,0 +1,42 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
3
+ import { vi } from 'vitest';
4
+ let ConsoleLoggerTest = class ConsoleLoggerTest extends Suite {
5
+ output = [];
6
+ async writesMessageInlineMetaAndMetaToStdout() {
7
+ const { TraceContext } = await import('../trace.context.js');
8
+ const { ConsoleLogger } = await import('./console.logger.js');
9
+ const logger = new ConsoleLogger(new TraceContext());
10
+ logger.info('message', { metaKey: 'metaValue' }, {
11
+ inlineMetaKey: 123,
12
+ anotherKey: true,
13
+ });
14
+ expect(this.getOutput()).toContain('message: inlineMetaKey=123, anotherKey=true {"metaKey":"metaValue"}');
15
+ }
16
+ async beforeEach() {
17
+ this.output = [];
18
+ vi.resetModules();
19
+ const stdout = console['_stdout'];
20
+ vi.spyOn(stdout, 'write').mockImplementation(((chunk) => {
21
+ this.output.push(chunk.toString());
22
+ return true;
23
+ }));
24
+ }
25
+ async afterEach() {
26
+ vi.restoreAllMocks();
27
+ }
28
+ getOutput() {
29
+ return this.output.join('');
30
+ }
31
+ };
32
+ __decorate([
33
+ Test(),
34
+ __metadata("design:type", Function),
35
+ __metadata("design:paramtypes", []),
36
+ __metadata("design:returntype", Promise)
37
+ ], ConsoleLoggerTest.prototype, "writesMessageInlineMetaAndMetaToStdout", null);
38
+ ConsoleLoggerTest = __decorate([
39
+ Describe()
40
+ ], ConsoleLoggerTest);
41
+ export { ConsoleLoggerTest };
42
+ //# sourceMappingURL=console.logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.logger.test.js","sourceRoot":"","sources":["../../src/logger/console.logger.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AASrB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,KAAK;IACnC,MAAM,GAAa,EAAE,CAAC;IAGjB,AAAN,KAAK,CAAC,sCAAsC;QAClD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CACV,SAAS,EACT,EAAE,OAAO,EAAE,WAAW,EAAE,EACxB;YACC,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,IAAI;SAChB,CACD,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,qEAAqE,CAAC,CAAC;IAC3G,CAAC;IAEe,KAAK,CAAC,UAAU;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAI,OAAoC,CAAC,SAAS,CAAC,CAAC;QAEhE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAA0B,EAAW,EAAE;YACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnC,OAAO,IAAI,CAAC;QACb,CAAC,CAAgC,CAAC,CAAC;IACpC,CAAC;IAEe,KAAK,CAAC,SAAS;QAC9B,EAAE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC;IAEO,SAAS;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACD,CAAA;AApCa;IADZ,IAAI,EAAE;;;;+EAgBN;AAnBW,iBAAiB;IAD7B,QAAQ,EAAE;GACE,iBAAiB,CAwC7B"}
@@ -1,4 +1,4 @@
1
- export { Logger } from './logger.js';
1
+ export { Logger, type InlineMeta, type InlineMetaValue, type LogMeta, } from './logger.js';
2
2
  export { MockLogger } from './mock.logger.js';
3
3
  export { ConsoleLogger } from './console.logger.js';
4
4
  export { JSONLogger } from './json.logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,OAAO,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { Logger } from './logger.js';
1
+ export { Logger, } from './logger.js';
2
2
  export { MockLogger } from './mock.logger.js';
3
3
  export { ConsoleLogger } from './console.logger.js';
4
4
  export { JSONLogger } from './json.logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,GAIN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Suite } from '@hg-ts/tests';
2
+ export declare class JSONLoggerTest extends Suite {
3
+ private output;
4
+ writesMessageInlineMetaAndMetaToStdout(): Promise<void>;
5
+ beforeEach(): Promise<void>;
6
+ afterEach(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=json.logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.logger.test.d.ts","sourceRoot":"","sources":["../../src/logger/json.logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,cAAe,SAAQ,KAAK;IACxC,OAAO,CAAC,MAAM,CAAgB;IAGjB,sCAAsC,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhD"}
@@ -0,0 +1,45 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
3
+ import { vi } from 'vitest';
4
+ let JSONLoggerTest = class JSONLoggerTest extends Suite {
5
+ output = [];
6
+ async writesMessageInlineMetaAndMetaToStdout() {
7
+ const { TraceContext } = await import('../trace.context.js');
8
+ const { JSONLogger } = await import('./json.logger.js');
9
+ const traceContext = new TraceContext();
10
+ const logger = new JSONLogger(traceContext);
11
+ const traceId = 'test-trace-id';
12
+ traceContext.run({ traceId }, () => logger.info('message', { metaKey: 'metaValue' }, {
13
+ inlineMetaKey: 123,
14
+ anotherKey: true,
15
+ }));
16
+ const log = JSON.parse(this.output.join(''));
17
+ expect(log['message']).toBe('message: inlineMetaKey=123, anotherKey=true');
18
+ expect(log['meta']).toEqual({ metaKey: 'metaValue' });
19
+ expect(log['inlineMeta']).toBeUndefined();
20
+ expect(log['traceId']).toBe(traceId);
21
+ }
22
+ async beforeEach() {
23
+ this.output = [];
24
+ vi.resetModules();
25
+ const stdout = console['_stdout'];
26
+ vi.spyOn(stdout, 'write').mockImplementation(((chunk) => {
27
+ this.output.push(chunk.toString());
28
+ return true;
29
+ }));
30
+ }
31
+ async afterEach() {
32
+ vi.restoreAllMocks();
33
+ }
34
+ };
35
+ __decorate([
36
+ Test(),
37
+ __metadata("design:type", Function),
38
+ __metadata("design:paramtypes", []),
39
+ __metadata("design:returntype", Promise)
40
+ ], JSONLoggerTest.prototype, "writesMessageInlineMetaAndMetaToStdout", null);
41
+ JSONLoggerTest = __decorate([
42
+ Describe()
43
+ ], JSONLoggerTest);
44
+ export { JSONLoggerTest };
45
+ //# sourceMappingURL=json.logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.logger.test.js","sourceRoot":"","sources":["../../src/logger/json.logger.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AASrB,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,KAAK;IAChC,MAAM,GAAa,EAAE,CAAC;IAGjB,AAAN,KAAK,CAAC,sCAAsC;QAClD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,eAAe,CAAC;QAEhC,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAC9C,SAAS,EACT,EAAE,OAAO,EAAE,WAAW,EAAE,EACxB;YACC,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,IAAI;SAChB,CACD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAA4B,CAAC;QAExE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEe,KAAK,CAAC,UAAU;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAI,OAAoC,CAAC,SAAS,CAAC,CAAC;QAEhE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAA0B,EAAW,EAAE;YACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnC,OAAO,IAAI,CAAC;QACb,CAAC,CAAgC,CAAC,CAAC;IACpC,CAAC;IAEe,KAAK,CAAC,SAAS;QAC9B,EAAE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC;CACD,CAAA;AAvCa;IADZ,IAAI,EAAE;;;;4EAuBN;AA1BW,cAAc;IAD1B,QAAQ,EAAE;GACE,cAAc,CA2C1B"}
@@ -1,12 +1,22 @@
1
+ import { type BaseException } from '@hg-ts/exception';
2
+ export type InlineMetaPrimitive = string | number | boolean | Date | Buffer;
3
+ export type InlineMetaValue = InlineMetaPrimitive | InlineMetaPrimitive[];
4
+ export type InlineMeta = Record<string, InlineMetaValue>;
5
+ export type LogMeta = Record<string, unknown>;
1
6
  export declare abstract class Logger {
2
- abstract debug(...messages: unknown[]): void;
3
- abstract info(...messages: unknown[]): void;
4
- abstract notice(...messages: unknown[]): void;
5
- abstract warning(...messages: unknown[]): void;
6
- abstract error(...messages: unknown[]): void;
7
- abstract critical(...messages: unknown[]): void;
8
- abstract alert(...messages: unknown[]): void;
9
- abstract emergency(...messages: unknown[]): void;
7
+ abstract debug(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
8
+ abstract info(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
9
+ abstract notice(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
10
+ abstract warning(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
11
+ abstract warning(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
12
+ abstract error(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
13
+ abstract error(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
14
+ abstract critical(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
15
+ abstract critical(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
16
+ abstract alert(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
17
+ abstract alert(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
18
+ abstract emergency(error: BaseException, message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
19
+ abstract emergency(message: string, meta?: LogMeta, inlineMeta?: InlineMeta): void;
10
20
  abstract setContext(context: Nullable<string>): void;
11
21
  }
12
22
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,8BAAsB,MAAM;aACX,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACnC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aAClC,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACpC,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACrC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACnC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACtC,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aACnC,SAAS,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;aAEvC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAC3D"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AACzD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,8BAAsB,MAAM;aACX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aACrE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aACpE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAEtE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAC7F,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAEvE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAC3F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAErE,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAC9F,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAExE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAC3F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAErE,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAC/F,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;aAEzE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,MAAM;CAW3B"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,MAAM;CAqB3B"}