@lark-apaas/nestjs-logger 1.0.2-alpha.31 → 1.0.2-alpha.33

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
@@ -9017,6 +9017,47 @@ var OBSERVABLE_LOGGER_SERVICE = /* @__PURE__ */ Symbol("OBSERVABLE_LOGGER_SERVIC
9017
9017
 
9018
9018
  // src/service/app-logger.service.ts
9019
9019
  var import_nestjs_common = require("@lark-apaas/nestjs-common");
9020
+
9021
+ // src/utils/safeStringify.ts
9022
+ function safeStringify(obj) {
9023
+ const seen = /* @__PURE__ */ new Set();
9024
+ try {
9025
+ return JSON.stringify(obj, (key, value) => {
9026
+ if (typeof value === "object" && value !== null) {
9027
+ if (seen.has(value)) {
9028
+ return "[Circular]";
9029
+ }
9030
+ seen.add(value);
9031
+ }
9032
+ if (typeof value === "bigint") {
9033
+ return value.toString();
9034
+ }
9035
+ if (value instanceof Date) {
9036
+ return value.toISOString();
9037
+ }
9038
+ if (value instanceof Map) {
9039
+ return Object.fromEntries(value);
9040
+ }
9041
+ if (value instanceof Set) {
9042
+ return Array.from(value);
9043
+ }
9044
+ if (typeof value === "undefined") {
9045
+ return "undefined";
9046
+ }
9047
+ if (typeof value === "symbol") {
9048
+ return value.toString();
9049
+ }
9050
+ return value;
9051
+ });
9052
+ } catch {
9053
+ return "";
9054
+ } finally {
9055
+ seen.clear();
9056
+ }
9057
+ }
9058
+ __name(safeStringify, "safeStringify");
9059
+
9060
+ // src/service/app-logger.service.ts
9020
9061
  function _ts_decorate(decorators, target, key, desc) {
9021
9062
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9022
9063
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -9251,7 +9292,11 @@ var BasePinoLogger = class _BasePinoLogger {
9251
9292
  this.logger[pinoLevel](sanitizedPayload);
9252
9293
  }
9253
9294
  } else {
9254
- this.observableService.log(level, messageText ?? "", payload);
9295
+ let finalMessage = messageText;
9296
+ if (typeof message === "object" && message !== null) {
9297
+ finalMessage = safeStringify(message);
9298
+ }
9299
+ this.observableService.log(level, finalMessage ?? "", payload);
9255
9300
  }
9256
9301
  }
9257
9302
  extractOptionalParams(optionalParams, treatStack) {
@@ -9454,6 +9499,10 @@ var LoggingInterceptor = class {
9454
9499
  const httpContext = context.switchToHttp();
9455
9500
  const req = httpContext.getRequest();
9456
9501
  const res = httpContext.getResponse();
9502
+ const protocol = req.protocol;
9503
+ const host = req.get("Host");
9504
+ const originalUrl = req.originalUrl;
9505
+ const fullUrl = `${protocol}://${host}${originalUrl}`;
9457
9506
  const method = req.method;
9458
9507
  const path = req.path;
9459
9508
  this.requestContext.setContext({
@@ -9481,6 +9530,10 @@ var LoggingInterceptor = class {
9481
9530
  res.__finalResponseBody = body;
9482
9531
  return originalSend(body);
9483
9532
  };
9533
+ if (process.env.NODE_ENV === "development") {
9534
+ this.appLogger.log(`HTTP request started
9535
+ url=${req.url}`, "HTTPTraceInterceptor");
9536
+ }
9484
9537
  const requestMeta = {
9485
9538
  ...baseMeta
9486
9539
  };
@@ -9490,10 +9543,6 @@ var LoggingInterceptor = class {
9490
9543
  if (this.config.logRequestBody && Object.keys(req.query || {}).length > 0) {
9491
9544
  requestMeta["query_params"] = this.sanitizeAndTruncate(req.query);
9492
9545
  }
9493
- this.appLogger.log(`HTTP request started
9494
- url=${req.url}`, {
9495
- source_type: "platform"
9496
- }, "HTTPTraceInterceptor");
9497
9546
  this.traceLogger.logStructured("verbose", "HTTP request started", requestMeta, "HTTPTraceInterceptor");
9498
9547
  let logged = false;
9499
9548
  res.on("finish", () => {
@@ -9520,7 +9569,7 @@ url=${req.url}`, {
9520
9569
  const responseData = {
9521
9570
  method,
9522
9571
  path,
9523
- url: req.url,
9572
+ url: fullUrl,
9524
9573
  duration_ms: durationMs,
9525
9574
  request_body: requestMeta["request_body"] ?? {},
9526
9575
  response: responseMeta["response_body"] ?? {},