@lark-apaas/nestjs-logger 1.0.1 → 1.0.2-alpha.2

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/dist/index.cjs CHANGED
@@ -14376,22 +14376,23 @@ __export(index_exports, {
14376
14376
  LoggerContextMiddleware: () => LoggerContextMiddleware,
14377
14377
  LoggerModule: () => LoggerModule,
14378
14378
  PinoLoggerService: () => PinoLoggerService,
14379
+ RequestContextService: () => import_nestjs_common5.RequestContextService,
14379
14380
  TRACE_LOGGER: () => TRACE_LOGGER
14380
14381
  });
14381
14382
  module.exports = __toCommonJS(index_exports);
14382
14383
 
14383
14384
  // src/service/app-logger.service.ts
14384
- var import_common2 = require("@nestjs/common");
14385
+ var import_common = require("@nestjs/common");
14385
14386
  var import_util = require("util");
14387
+ var import_observable = require("@lark-apaas/observable");
14386
14388
 
14387
14389
  // src/helper/constants.ts
14388
14390
  var PINO_ROOT_LOGGER = Symbol("PINO_ROOT_LOGGER");
14389
14391
  var TRACE_LOGGER = Symbol("TRACE_LOGGER");
14390
14392
  var METRICS_LOGGER = Symbol("METRICS_LOGGER");
14391
14393
 
14392
- // src/service/request-context.service.ts
14393
- var import_common = require("@nestjs/common");
14394
- var import_async_hooks = require("async_hooks");
14394
+ // src/service/app-logger.service.ts
14395
+ var import_nestjs_common = require("@lark-apaas/nestjs-common");
14395
14396
  function _ts_decorate(decorators, target, key, desc) {
14396
14397
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14397
14398
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -14399,43 +14400,6 @@ function _ts_decorate(decorators, target, key, desc) {
14399
14400
  return c > 3 && r && Object.defineProperty(target, key, r), r;
14400
14401
  }
14401
14402
  __name(_ts_decorate, "_ts_decorate");
14402
- var RequestContextService = class {
14403
- static {
14404
- __name(this, "RequestContextService");
14405
- }
14406
- storage = new import_async_hooks.AsyncLocalStorage();
14407
- run(context, callback) {
14408
- const store = {
14409
- ...context
14410
- };
14411
- return this.storage.run(store, callback);
14412
- }
14413
- setContext(partial) {
14414
- const store = this.storage.getStore();
14415
- if (!store) {
14416
- return;
14417
- }
14418
- Object.assign(store, partial);
14419
- }
14420
- getContext() {
14421
- return this.storage.getStore();
14422
- }
14423
- get(key) {
14424
- return this.storage.getStore()?.[key];
14425
- }
14426
- };
14427
- RequestContextService = _ts_decorate([
14428
- (0, import_common.Injectable)()
14429
- ], RequestContextService);
14430
-
14431
- // src/service/app-logger.service.ts
14432
- function _ts_decorate2(decorators, target, key, desc) {
14433
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14434
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14435
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
14436
- return c > 3 && r && Object.defineProperty(target, key, r), r;
14437
- }
14438
- __name(_ts_decorate2, "_ts_decorate");
14439
14403
  function _ts_metadata(k, v) {
14440
14404
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14441
14405
  }
@@ -14544,11 +14508,13 @@ var BasePinoLogger = class _BasePinoLogger {
14544
14508
  logger;
14545
14509
  contextStore;
14546
14510
  levelState = new LogLevelState();
14511
+ otelLogger = import_observable.appSdk;
14547
14512
  constructor(logger, contextStore) {
14548
14513
  this.logger = logger;
14549
14514
  this.contextStore = contextStore;
14550
14515
  const pinoLevel = this.logger.level;
14551
14516
  const nestLevels = LogLevelState.fromPinoLevel(pinoLevel);
14517
+ this.otelLogger.start();
14552
14518
  this.levelState.set(nestLevels);
14553
14519
  }
14554
14520
  setLogLevels(levels) {
@@ -14638,6 +14604,7 @@ var BasePinoLogger = class _BasePinoLogger {
14638
14604
  } else {
14639
14605
  this.logger[pinoLevel](sanitizedPayload);
14640
14606
  }
14607
+ this.otelLogger.log(level, messageText ?? "", sanitizedPayload);
14641
14608
  }
14642
14609
  extractOptionalParams(optionalParams, treatStack) {
14643
14610
  const params = [
@@ -14708,16 +14675,16 @@ var AppLogger = class extends BasePinoLogger {
14708
14675
  }
14709
14676
  constructor(logger, requestContext) {
14710
14677
  super(logger, requestContext);
14711
- import_common2.Logger.overrideLogger(this);
14678
+ import_common.Logger.overrideLogger(this);
14712
14679
  }
14713
14680
  };
14714
- AppLogger = _ts_decorate2([
14715
- (0, import_common2.Injectable)(),
14716
- _ts_param(0, (0, import_common2.Inject)(PINO_ROOT_LOGGER)),
14681
+ AppLogger = _ts_decorate([
14682
+ (0, import_common.Injectable)(),
14683
+ _ts_param(0, (0, import_common.Inject)(PINO_ROOT_LOGGER)),
14717
14684
  _ts_metadata("design:type", Function),
14718
14685
  _ts_metadata("design:paramtypes", [
14719
14686
  typeof PinoLogger === "undefined" ? Object : PinoLogger,
14720
- typeof RequestContextService === "undefined" ? Object : RequestContextService
14687
+ typeof import_nestjs_common.RequestContextService === "undefined" ? Object : import_nestjs_common.RequestContextService
14721
14688
  ])
14722
14689
  ], AppLogger);
14723
14690
  var PinoLoggerService = class extends BasePinoLogger {
@@ -14777,9 +14744,10 @@ function sanitizeValue(value) {
14777
14744
  __name(sanitizeValue, "sanitizeValue");
14778
14745
 
14779
14746
  // src/module.ts
14780
- var import_common5 = require("@nestjs/common");
14747
+ var import_common4 = require("@nestjs/common");
14781
14748
  var import_core = require("@nestjs/core");
14782
14749
  var import_config3 = __toESM(require_config2(), 1);
14750
+ var import_nestjs_common4 = require("@lark-apaas/nestjs-common");
14783
14751
 
14784
14752
  // src/config/logger.config.ts
14785
14753
  var import_config = __toESM(require_config2(), 1);
@@ -14813,16 +14781,18 @@ var logger_config_default = (0, import_config.registerAs)("logger", () => {
14813
14781
  });
14814
14782
 
14815
14783
  // src/interceptor/logging.interceptor.ts
14816
- var import_common3 = require("@nestjs/common");
14784
+ var import_common2 = require("@nestjs/common");
14817
14785
  var import_config2 = __toESM(require_config2(), 1);
14818
14786
  var import_operators = __toESM(require_operators(), 1);
14819
- function _ts_decorate3(decorators, target, key, desc) {
14787
+ var import_util2 = require("util");
14788
+ var import_nestjs_common2 = require("@lark-apaas/nestjs-common");
14789
+ function _ts_decorate2(decorators, target, key, desc) {
14820
14790
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14821
14791
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14822
14792
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
14823
14793
  return c > 3 && r && Object.defineProperty(target, key, r), r;
14824
14794
  }
14825
- __name(_ts_decorate3, "_ts_decorate");
14795
+ __name(_ts_decorate2, "_ts_decorate");
14826
14796
  function _ts_metadata2(k, v) {
14827
14797
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14828
14798
  }
@@ -14946,6 +14916,7 @@ duration_ms=${durationMs}`, "HTTPTraceInterceptor");
14946
14916
  this.traceLogger.logStructured(traceLevel, isError ? "HTTP request failed" : "HTTP request completed", responseMeta, "HTTPTraceInterceptor");
14947
14917
  });
14948
14918
  return next.handle().pipe((0, import_operators.catchError)((error) => {
14919
+ this.appLogger.error((0, import_util2.format)("HTTP request exception\nmethod=%s url=%s\nerror=%o", req.method, req.url, error), "HTTPTraceInterceptor");
14949
14920
  throw error;
14950
14921
  }));
14951
14922
  }
@@ -14970,20 +14941,21 @@ duration_ms=${durationMs}`, "HTTPTraceInterceptor");
14970
14941
  return {
14971
14942
  _error: "Failed to serialize data",
14972
14943
  _type: typeof data,
14944
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14973
14945
  _constructor: data?.constructor?.name
14974
14946
  };
14975
14947
  }
14976
14948
  }
14977
14949
  };
14978
- LoggingInterceptor = _ts_decorate3([
14979
- (0, import_common3.Injectable)(),
14980
- _ts_param2(0, (0, import_common3.Inject)(TRACE_LOGGER)),
14981
- _ts_param2(2, (0, import_common3.Inject)(AppLogger)),
14982
- _ts_param2(3, (0, import_common3.Inject)(logger_config_default.KEY)),
14950
+ LoggingInterceptor = _ts_decorate2([
14951
+ (0, import_common2.Injectable)(),
14952
+ _ts_param2(0, (0, import_common2.Inject)(TRACE_LOGGER)),
14953
+ _ts_param2(2, (0, import_common2.Inject)(AppLogger)),
14954
+ _ts_param2(3, (0, import_common2.Inject)(logger_config_default.KEY)),
14983
14955
  _ts_metadata2("design:type", Function),
14984
14956
  _ts_metadata2("design:paramtypes", [
14985
14957
  typeof PinoLoggerService === "undefined" ? Object : PinoLoggerService,
14986
- typeof RequestContextService === "undefined" ? Object : RequestContextService,
14958
+ typeof import_nestjs_common2.RequestContextService === "undefined" ? Object : import_nestjs_common2.RequestContextService,
14987
14959
  typeof AppLogger === "undefined" ? Object : AppLogger,
14988
14960
  typeof import_config2.ConfigType === "undefined" ? Object : import_config2.ConfigType
14989
14961
  ])
@@ -15040,15 +15012,16 @@ function createFileDestination(pathname) {
15040
15012
  __name(createFileDestination, "createFileDestination");
15041
15013
 
15042
15014
  // src/middleware/logger-context.middleware.ts
15043
- var import_common4 = require("@nestjs/common");
15015
+ var import_common3 = require("@nestjs/common");
15044
15016
  var import_crypto = require("crypto");
15045
- function _ts_decorate4(decorators, target, key, desc) {
15017
+ var import_nestjs_common3 = require("@lark-apaas/nestjs-common");
15018
+ function _ts_decorate3(decorators, target, key, desc) {
15046
15019
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15047
15020
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15048
15021
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15049
15022
  return c > 3 && r && Object.defineProperty(target, key, r), r;
15050
15023
  }
15051
- __name(_ts_decorate4, "_ts_decorate");
15024
+ __name(_ts_decorate3, "_ts_decorate");
15052
15025
  function _ts_metadata3(k, v) {
15053
15026
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15054
15027
  }
@@ -15061,13 +15034,14 @@ var LoggerContextMiddleware = class {
15061
15034
  constructor(requestContext) {
15062
15035
  this.requestContext = requestContext;
15063
15036
  }
15064
- use(req, _res, next) {
15037
+ use(req, res, next) {
15065
15038
  const requestId = req.headers["x-tt-log-id"] ?? (0, import_crypto.randomUUID)();
15066
15039
  const path = req.originalUrl ?? req.url;
15067
15040
  const userContext = req.userContext ?? {};
15068
15041
  const mutableReq = req;
15069
15042
  mutableReq.requestId = requestId;
15070
15043
  mutableReq.id = requestId;
15044
+ res.setHeader("x-log-trace-id", requestId);
15071
15045
  this.requestContext.run({
15072
15046
  requestId,
15073
15047
  path,
@@ -15078,35 +15052,35 @@ var LoggerContextMiddleware = class {
15078
15052
  }, () => next());
15079
15053
  }
15080
15054
  };
15081
- LoggerContextMiddleware = _ts_decorate4([
15082
- (0, import_common4.Injectable)(),
15055
+ LoggerContextMiddleware = _ts_decorate3([
15056
+ (0, import_common3.Injectable)(),
15083
15057
  _ts_metadata3("design:type", Function),
15084
15058
  _ts_metadata3("design:paramtypes", [
15085
- typeof RequestContextService === "undefined" ? Object : RequestContextService
15059
+ typeof import_nestjs_common3.RequestContextService === "undefined" ? Object : import_nestjs_common3.RequestContextService
15086
15060
  ])
15087
15061
  ], LoggerContextMiddleware);
15088
15062
 
15089
15063
  // src/module.ts
15090
- function _ts_decorate5(decorators, target, key, desc) {
15064
+ function _ts_decorate4(decorators, target, key, desc) {
15091
15065
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15092
15066
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15093
15067
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15094
15068
  return c > 3 && r && Object.defineProperty(target, key, r), r;
15095
15069
  }
15096
- __name(_ts_decorate5, "_ts_decorate");
15070
+ __name(_ts_decorate4, "_ts_decorate");
15097
15071
  var LoggerModule = class {
15098
15072
  static {
15099
15073
  __name(this, "LoggerModule");
15100
15074
  }
15101
15075
  };
15102
- LoggerModule = _ts_decorate5([
15103
- (0, import_common5.Global)(),
15104
- (0, import_common5.Module)({
15076
+ LoggerModule = _ts_decorate4([
15077
+ (0, import_common4.Global)(),
15078
+ (0, import_common4.Module)({
15105
15079
  imports: [
15106
15080
  import_config3.ConfigModule.forFeature(logger_config_default)
15107
15081
  ],
15108
15082
  providers: [
15109
- RequestContextService,
15083
+ import_nestjs_common4.RequestContextService,
15110
15084
  LoggerContextMiddleware,
15111
15085
  {
15112
15086
  provide: PINO_ROOT_LOGGER,
@@ -15127,7 +15101,7 @@ LoggerModule = _ts_decorate5([
15127
15101
  filePath: `${config.logDir}/trace.log`
15128
15102
  }), requestContext), "useFactory"),
15129
15103
  inject: [
15130
- RequestContextService,
15104
+ import_nestjs_common4.RequestContextService,
15131
15105
  logger_config_default.KEY
15132
15106
  ]
15133
15107
  },
@@ -15141,17 +15115,21 @@ LoggerModule = _ts_decorate5([
15141
15115
  exports: [
15142
15116
  AppLogger,
15143
15117
  TRACE_LOGGER,
15144
- RequestContextService,
15118
+ import_nestjs_common4.RequestContextService,
15145
15119
  LoggerContextMiddleware
15146
15120
  ]
15147
15121
  })
15148
15122
  ], LoggerModule);
15123
+
15124
+ // src/index.ts
15125
+ var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
15149
15126
  // Annotate the CommonJS export names for ESM import in node:
15150
15127
  0 && (module.exports = {
15151
15128
  AppLogger,
15152
15129
  LoggerContextMiddleware,
15153
15130
  LoggerModule,
15154
15131
  PinoLoggerService,
15132
+ RequestContextService,
15155
15133
  TRACE_LOGGER
15156
15134
  });
15157
15135
  //# sourceMappingURL=index.cjs.map