@ogcio/fastify-logging-wrapper 4.1.0 → 4.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.
@@ -36,6 +36,8 @@ describe("Logging entries when all works fine are the expected ones", () => {
36
36
  responseStatusCode: 200,
37
37
  expectedMessage: LogMessages.ApiTrack,
38
38
  });
39
+ const apiTrackEntry = JSON.parse(loggedRecords[2]);
40
+ assert.notNestedProperty(apiTrackEntry, "error");
39
41
  });
40
42
  });
41
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"fastify-logging-wrapper.d.ts","sourceRoot":"","sources":["../src/fastify-logging-wrapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,KAAK,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AAgBpD,eAAO,MAAM,sBAAsB,WAAY,eAAe,KAAG,IA6BhE,CAAC;AAEF,eAAO,MAAM,uBAAuB,uBACd,iBAAiB,wBACf,iBAAiB,KACtC,oBAMD,CAAC"}
1
+ {"version":3,"file":"fastify-logging-wrapper.d.ts","sourceRoot":"","sources":["../src/fastify-logging-wrapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,KAAK,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AA6BpD,eAAO,MAAM,sBAAsB,WAAY,eAAe,KAAG,IAqChE,CAAC;AAEF,eAAO,MAAM,uBAAuB,uBACd,iBAAiB,wBACf,iBAAiB,KACtC,oBAMD,CAAC"}
@@ -4,17 +4,35 @@ import { pino } from "pino";
4
4
  import { LogMessages, REQUEST_ID_LOG_LABEL, } from "./logging-wrapper-entities.js";
5
5
  import { getLoggerConfiguration, getLoggingContextError, getPartialLoggingContextError, parseFullLoggingRequest, resetLoggingContext, setLoggingContext, } from "./logging-wrapper.js";
6
6
  const hyperidInstance = hyperid({ fixedLength: true, urlSafe: true });
7
+ const isObjectNotEmpty = (value) => {
8
+ return (value &&
9
+ typeof value === "object" &&
10
+ !Array.isArray(value) &&
11
+ Object.keys(Object.fromEntries(Object.entries(value).filter(([_, v]) => v !== undefined))).length > 0);
12
+ };
7
13
  export const initializeLoggingHooks = (server) => {
8
14
  server.addHook("preHandler", (request, _reply, done) => {
9
15
  setLoggingContext({ request });
10
- request.log.info({ request: parseFullLoggingRequest(request) }, LogMessages.NewRequest);
16
+ const requestParsed = parseFullLoggingRequest(request);
17
+ if (isObjectNotEmpty(requestParsed)) {
18
+ request.log.info({ request: requestParsed }, LogMessages.NewRequest);
19
+ }
20
+ else {
21
+ request.log.info(LogMessages.NewRequest);
22
+ }
11
23
  done();
12
24
  });
13
25
  server.addHook("onResponse", (_req, reply, done) => {
14
26
  setLoggingContext({ response: reply });
15
27
  reply.log.info(LogMessages.Response);
16
28
  // Include error in API Track if exists
17
- reply.log.info({ error: getPartialLoggingContextError() }, LogMessages.ApiTrack);
29
+ const error = getPartialLoggingContextError();
30
+ if (isObjectNotEmpty(error)) {
31
+ reply.log.info({ error: error }, LogMessages.ApiTrack);
32
+ }
33
+ else {
34
+ reply.log.info(LogMessages.ApiTrack);
35
+ }
18
36
  resetLoggingContext();
19
37
  done();
20
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fastify-logging-wrapper.js","sourceRoot":"","sources":["../src/fastify-logging-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAA0B,IAAI,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EACL,WAAW,EACX,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,eAAe,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAuB,EAAQ,EAAE;IACtE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACrD,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAC7C,WAAW,CAAC,UAAU,CACvB,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjD,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrC,uCAAuC;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CACZ,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,EAC1C,WAAW,CAAC,QAAQ,CACrB,CAAC;QACF,mBAAmB,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAE1E,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,iBAAqC,EACrC,mBAAuC,EACjB,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IAC5E,qBAAqB,EAAE,IAAI;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,eAAe,EAAE,iBAAiB;CACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"fastify-logging-wrapper.js","sourceRoot":"","sources":["../src/fastify-logging-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAA0B,IAAI,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EACL,WAAW,EACX,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,eAAe,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,gBAAgB,GAAG,CAAC,KAAyB,EAAE,EAAE;IACrD,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAC1D,CACF,CAAC,MAAM,GAAG,CAAC,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAuB,EAAQ,EAAE;IACtE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACrD,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjD,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrC,uCAAuC;QACvC,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;QAC9C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,mBAAmB,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAE1E,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,iBAAqC,EACrC,mBAAuC,EACjB,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IAC5E,qBAAqB,EAAE,IAAI;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,eAAe,EAAE,iBAAiB;CACnC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ogcio/fastify-logging-wrapper",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -18,13 +18,31 @@ import {
18
18
 
19
19
  const hyperidInstance = hyperid({ fixedLength: true, urlSafe: true });
20
20
 
21
+ const isObjectNotEmpty = (value: object | undefined) => {
22
+ return (
23
+ value &&
24
+ typeof value === "object" &&
25
+ !Array.isArray(value) &&
26
+ Object.keys(
27
+ Object.fromEntries(
28
+ Object.entries(value).filter(([_, v]) => v !== undefined),
29
+ ),
30
+ ).length > 0
31
+ );
32
+ };
33
+
21
34
  export const initializeLoggingHooks = (server: FastifyInstance): void => {
22
35
  server.addHook("preHandler", (request, _reply, done) => {
23
36
  setLoggingContext({ request });
24
- request.log.info(
25
- { request: parseFullLoggingRequest(request) },
26
- LogMessages.NewRequest,
27
- );
37
+
38
+ const requestParsed = parseFullLoggingRequest(request);
39
+
40
+ if (isObjectNotEmpty(requestParsed)) {
41
+ request.log.info({ request: requestParsed }, LogMessages.NewRequest);
42
+ } else {
43
+ request.log.info(LogMessages.NewRequest);
44
+ }
45
+
28
46
  done();
29
47
  });
30
48
 
@@ -32,10 +50,13 @@ export const initializeLoggingHooks = (server: FastifyInstance): void => {
32
50
  setLoggingContext({ response: reply });
33
51
  reply.log.info(LogMessages.Response);
34
52
  // Include error in API Track if exists
35
- reply.log.info(
36
- { error: getPartialLoggingContextError() },
37
- LogMessages.ApiTrack,
38
- );
53
+ const error = getPartialLoggingContextError();
54
+ if (isObjectNotEmpty(error)) {
55
+ reply.log.info({ error: error }, LogMessages.ApiTrack);
56
+ } else {
57
+ reply.log.info(LogMessages.ApiTrack);
58
+ }
59
+
39
60
  resetLoggingContext();
40
61
  done();
41
62
  });