@percepta/logger 0.0.6 → 0.1.0
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/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/index.cjs +13 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/logger/MosaicLogger.cjs +50 -0
- package/dist/logger/MosaicLogger.cjs.map +1 -0
- package/dist/logger/MosaicLogger.d.cts +23 -0
- package/dist/logger/MosaicLogger.d.cts.map +1 -0
- package/dist/logger/MosaicLogger.d.ts +23 -0
- package/dist/logger/MosaicLogger.d.ts.map +1 -0
- package/dist/logger/MosaicLogger.js +49 -0
- package/dist/logger/MosaicLogger.js.map +1 -0
- package/dist/logger/createLogFactory.cjs +20 -0
- package/dist/logger/createLogFactory.cjs.map +1 -0
- package/dist/logger/createLogFactory.d.cts +13 -0
- package/dist/logger/createLogFactory.d.cts.map +1 -0
- package/dist/logger/createLogFactory.d.ts +13 -0
- package/dist/logger/createLogFactory.d.ts.map +1 -0
- package/dist/logger/createLogFactory.js +20 -0
- package/dist/logger/createLogFactory.js.map +1 -0
- package/dist/logger/createLoggerRuntime.cjs +16 -0
- package/dist/logger/createLoggerRuntime.cjs.map +1 -0
- package/dist/logger/createLoggerRuntime.d.cts +18 -0
- package/dist/logger/createLoggerRuntime.d.cts.map +1 -0
- package/dist/logger/createLoggerRuntime.d.ts +18 -0
- package/dist/logger/createLoggerRuntime.d.ts.map +1 -0
- package/dist/logger/createLoggerRuntime.js +15 -0
- package/dist/logger/createLoggerRuntime.js.map +1 -0
- package/dist/logger/createPinoInstance.cjs +28 -0
- package/dist/logger/createPinoInstance.cjs.map +1 -0
- package/dist/logger/createPinoInstance.d.cts +8 -0
- package/dist/logger/createPinoInstance.d.cts.map +1 -0
- package/dist/logger/createPinoInstance.d.ts +8 -0
- package/dist/logger/createPinoInstance.d.ts.map +1 -0
- package/dist/logger/createPinoInstance.js +25 -0
- package/dist/logger/createPinoInstance.js.map +1 -0
- package/dist/tracer/createTracerFactory.cjs +12 -0
- package/dist/tracer/createTracerFactory.cjs.map +1 -0
- package/dist/tracer/createTracerFactory.d.cts +14 -0
- package/dist/tracer/createTracerFactory.d.cts.map +1 -0
- package/dist/tracer/createTracerFactory.d.ts +14 -0
- package/dist/tracer/createTracerFactory.d.ts.map +1 -0
- package/dist/tracer/createTracerFactory.js +12 -0
- package/dist/tracer/createTracerFactory.js.map +1 -0
- package/dist/utils/redactValueForGrafana.cjs +8 -0
- package/dist/utils/redactValueForGrafana.cjs.map +1 -0
- package/dist/utils/redactValueForGrafana.d.cts +5 -0
- package/dist/utils/redactValueForGrafana.d.cts.map +1 -0
- package/dist/utils/redactValueForGrafana.d.ts +5 -0
- package/dist/utils/redactValueForGrafana.d.ts.map +1 -0
- package/dist/utils/redactValueForGrafana.js +8 -0
- package/dist/utils/redactValueForGrafana.js.map +1 -0
- package/package.json +28 -18
- package/dist/cjs/src/index.d.ts +0 -6
- package/dist/cjs/src/index.d.ts.map +0 -1
- package/dist/cjs/src/index.js +0 -22
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/logger/MosaicLogger.d.ts +0 -19
- package/dist/cjs/src/logger/MosaicLogger.d.ts.map +0 -1
- package/dist/cjs/src/logger/MosaicLogger.js +0 -61
- package/dist/cjs/src/logger/MosaicLogger.js.map +0 -1
- package/dist/cjs/src/logger/createLogFactory.d.ts +0 -9
- package/dist/cjs/src/logger/createLogFactory.d.ts.map +0 -1
- package/dist/cjs/src/logger/createLogFactory.js +0 -19
- package/dist/cjs/src/logger/createLogFactory.js.map +0 -1
- package/dist/cjs/src/logger/createPinoInstance.d.ts +0 -4
- package/dist/cjs/src/logger/createPinoInstance.d.ts.map +0 -1
- package/dist/cjs/src/logger/createPinoInstance.js +0 -33
- package/dist/cjs/src/logger/createPinoInstance.js.map +0 -1
- package/dist/cjs/src/tracer/createTracerFactory.d.ts +0 -10
- package/dist/cjs/src/tracer/createTracerFactory.d.ts.map +0 -1
- package/dist/cjs/src/tracer/createTracerFactory.js +0 -11
- package/dist/cjs/src/tracer/createTracerFactory.js.map +0 -1
- package/dist/cjs/src/utils/redactValueForGrafana.d.ts +0 -2
- package/dist/cjs/src/utils/redactValueForGrafana.d.ts.map +0 -1
- package/dist/cjs/src/utils/redactValueForGrafana.js +0 -7
- package/dist/cjs/src/utils/redactValueForGrafana.js.map +0 -1
- package/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/dist/esnext/src/index.d.ts +0 -6
- package/dist/esnext/src/index.d.ts.map +0 -1
- package/dist/esnext/src/index.js +0 -6
- package/dist/esnext/src/index.js.map +0 -1
- package/dist/esnext/src/logger/MosaicLogger.d.ts +0 -19
- package/dist/esnext/src/logger/MosaicLogger.d.ts.map +0 -1
- package/dist/esnext/src/logger/MosaicLogger.js +0 -57
- package/dist/esnext/src/logger/MosaicLogger.js.map +0 -1
- package/dist/esnext/src/logger/createLogFactory.d.ts +0 -9
- package/dist/esnext/src/logger/createLogFactory.d.ts.map +0 -1
- package/dist/esnext/src/logger/createLogFactory.js +0 -16
- package/dist/esnext/src/logger/createLogFactory.js.map +0 -1
- package/dist/esnext/src/logger/createPinoInstance.d.ts +0 -4
- package/dist/esnext/src/logger/createPinoInstance.d.ts.map +0 -1
- package/dist/esnext/src/logger/createPinoInstance.js +0 -27
- package/dist/esnext/src/logger/createPinoInstance.js.map +0 -1
- package/dist/esnext/src/tracer/createTracerFactory.d.ts +0 -10
- package/dist/esnext/src/tracer/createTracerFactory.d.ts.map +0 -1
- package/dist/esnext/src/tracer/createTracerFactory.js +0 -8
- package/dist/esnext/src/tracer/createTracerFactory.js.map +0 -1
- package/dist/esnext/src/utils/redactValueForGrafana.d.ts +0 -2
- package/dist/esnext/src/utils/redactValueForGrafana.d.ts.map +0 -1
- package/dist/esnext/src/utils/redactValueForGrafana.js +0 -4
- package/dist/esnext/src/utils/redactValueForGrafana.js.map +0 -1
- package/dist/esnext/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_redactValueForGrafana = require("./utils/redactValueForGrafana.cjs");
|
|
3
|
+
const require_MosaicLogger = require("./logger/MosaicLogger.cjs");
|
|
4
|
+
const require_createLogFactory = require("./logger/createLogFactory.cjs");
|
|
5
|
+
const require_createPinoInstance = require("./logger/createPinoInstance.cjs");
|
|
6
|
+
const require_createTracerFactory = require("./tracer/createTracerFactory.cjs");
|
|
7
|
+
const require_createLoggerRuntime = require("./logger/createLoggerRuntime.cjs");
|
|
8
|
+
exports.MosaicLogger = require_MosaicLogger.MosaicLogger;
|
|
9
|
+
exports.createLogFactory = require_createLogFactory.createLogFactory;
|
|
10
|
+
exports.createLoggerRuntime = require_createLoggerRuntime.createLoggerRuntime;
|
|
11
|
+
exports.createPinoInstance = require_createPinoInstance.createPinoInstance;
|
|
12
|
+
exports.createTracerFactory = require_createTracerFactory.createTracerFactory;
|
|
13
|
+
exports.redactValueForGrafana = require_redactValueForGrafana.redactValueForGrafana;
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.cjs";
|
|
2
|
+
import { LogFactory, createLogFactory } from "./logger/createLogFactory.cjs";
|
|
3
|
+
import { createPinoInstance } from "./logger/createPinoInstance.cjs";
|
|
4
|
+
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.cjs";
|
|
5
|
+
import { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime } from "./logger/createLoggerRuntime.cjs";
|
|
6
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.cjs";
|
|
7
|
+
export { CreateLoggerRuntimeConfig, LogArgs, LogFactory, LoggerRuntime, MosaicLogger, Tracer, TracerFactory, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.js";
|
|
2
|
+
import { LogFactory, createLogFactory } from "./logger/createLogFactory.js";
|
|
3
|
+
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
4
|
+
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
5
|
+
import { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime } from "./logger/createLoggerRuntime.js";
|
|
6
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.js";
|
|
7
|
+
export { CreateLoggerRuntimeConfig, LogArgs, LogFactory, LoggerRuntime, MosaicLogger, Tracer, TracerFactory, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.js";
|
|
2
|
+
import { MosaicLogger } from "./logger/MosaicLogger.js";
|
|
3
|
+
import { createLogFactory } from "./logger/createLogFactory.js";
|
|
4
|
+
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
5
|
+
import { createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
6
|
+
import { createLoggerRuntime } from "./logger/createLoggerRuntime.js";
|
|
7
|
+
export { MosaicLogger, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let lodash_es = require("lodash-es");
|
|
3
|
+
//#region src/logger/MosaicLogger.ts
|
|
4
|
+
var MosaicLogger = class MosaicLogger {
|
|
5
|
+
constructor(pino, redactValue) {
|
|
6
|
+
this.pino = pino;
|
|
7
|
+
this.redactValue = redactValue;
|
|
8
|
+
}
|
|
9
|
+
child(context) {
|
|
10
|
+
return new MosaicLogger(this.pino.child(this.resolveArgs(context)), this.redactValue);
|
|
11
|
+
}
|
|
12
|
+
info(args, message, error) {
|
|
13
|
+
this.log("info", args, message, error);
|
|
14
|
+
}
|
|
15
|
+
warn(args, message, error) {
|
|
16
|
+
this.log("warn", args, message, error);
|
|
17
|
+
}
|
|
18
|
+
debug(args, message, error) {
|
|
19
|
+
this.log("debug", args, message, error);
|
|
20
|
+
}
|
|
21
|
+
error(args, message, error) {
|
|
22
|
+
this.log("error", args, message, error);
|
|
23
|
+
}
|
|
24
|
+
log(level, args, message, error) {
|
|
25
|
+
this.pino[level]({
|
|
26
|
+
...args != null && { ...this.resolveArgs(args) },
|
|
27
|
+
...error != null && { err: this.serializeError(error) }
|
|
28
|
+
}, message);
|
|
29
|
+
}
|
|
30
|
+
resolveArgs({ safe, unsafe }) {
|
|
31
|
+
return {
|
|
32
|
+
...safe,
|
|
33
|
+
...unsafe != null && (0, lodash_es.mapValues)(unsafe, (value) => this.redactValue(value))
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
serializeError(error) {
|
|
37
|
+
if (!(0, lodash_es.isError)(error)) return { message: this.redactValue(String(error)) };
|
|
38
|
+
const { name, message, stack, ...errorProps } = error;
|
|
39
|
+
return {
|
|
40
|
+
type: name,
|
|
41
|
+
message: this.redactValue(message),
|
|
42
|
+
stack,
|
|
43
|
+
...!(0, lodash_es.isEmpty)(errorProps) && { props: this.redactValue(errorProps) }
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.MosaicLogger = MosaicLogger;
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=MosaicLogger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.cjs","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport type { Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,SAAA,GAAA,UAAA,WACF,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,EAAA,GAAA,UAAA,SAAS,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,EAAA,GAAA,UAAA,SAAS,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/MosaicLogger.d.ts
|
|
4
|
+
interface LogArgs {
|
|
5
|
+
safe?: Record<string, unknown>;
|
|
6
|
+
unsafe?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
declare class MosaicLogger {
|
|
9
|
+
private pino;
|
|
10
|
+
private redactValue;
|
|
11
|
+
constructor(pino: Logger, redactValue: (value: unknown) => string);
|
|
12
|
+
child(context: LogArgs): MosaicLogger;
|
|
13
|
+
info(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
14
|
+
warn(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
15
|
+
debug(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
16
|
+
error(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
17
|
+
private log;
|
|
18
|
+
private resolveArgs;
|
|
19
|
+
private serializeError;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { LogArgs, MosaicLogger };
|
|
23
|
+
//# sourceMappingURL=MosaicLogger.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.d.cts","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"mappings":";;;UAGiB,OAAA;EACf,IAAA,GAAO,MAAA;EACP,MAAA,GAAS,MAAA;AAAA;AAAA,cAUE,YAAA;EAAA,QAED,IAAA;EAAA,QACA,WAAA;cADA,IAAA,EAAM,MAAA,EACN,WAAA,GAAc,KAAA;EAGjB,KAAA,CAAM,OAAA,EAAS,OAAA,GAAU,YAAA;EAOzB,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAAA,QAKM,GAAA;EAAA,QAeA,WAAA;EAAA,QAQA,cAAA;AAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/MosaicLogger.d.ts
|
|
4
|
+
interface LogArgs {
|
|
5
|
+
safe?: Record<string, unknown>;
|
|
6
|
+
unsafe?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
declare class MosaicLogger {
|
|
9
|
+
private pino;
|
|
10
|
+
private redactValue;
|
|
11
|
+
constructor(pino: Logger, redactValue: (value: unknown) => string);
|
|
12
|
+
child(context: LogArgs): MosaicLogger;
|
|
13
|
+
info(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
14
|
+
warn(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
15
|
+
debug(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
16
|
+
error(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
17
|
+
private log;
|
|
18
|
+
private resolveArgs;
|
|
19
|
+
private serializeError;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { LogArgs, MosaicLogger };
|
|
23
|
+
//# sourceMappingURL=MosaicLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.d.ts","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"mappings":";;;UAGiB,OAAA;EACf,IAAA,GAAO,MAAA;EACP,MAAA,GAAS,MAAA;AAAA;AAAA,cAUE,YAAA;EAAA,QAED,IAAA;EAAA,QACA,WAAA;cADA,IAAA,EAAM,MAAA,EACN,WAAA,GAAc,KAAA;EAGjB,KAAA,CAAM,OAAA,EAAS,OAAA,GAAU,YAAA;EAOzB,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAAA,QAKM,GAAA;EAAA,QAeA,WAAA;EAAA,QAQA,cAAA;AAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { isEmpty, isError, mapValues } from "lodash-es";
|
|
2
|
+
//#region src/logger/MosaicLogger.ts
|
|
3
|
+
var MosaicLogger = class MosaicLogger {
|
|
4
|
+
constructor(pino, redactValue) {
|
|
5
|
+
this.pino = pino;
|
|
6
|
+
this.redactValue = redactValue;
|
|
7
|
+
}
|
|
8
|
+
child(context) {
|
|
9
|
+
return new MosaicLogger(this.pino.child(this.resolveArgs(context)), this.redactValue);
|
|
10
|
+
}
|
|
11
|
+
info(args, message, error) {
|
|
12
|
+
this.log("info", args, message, error);
|
|
13
|
+
}
|
|
14
|
+
warn(args, message, error) {
|
|
15
|
+
this.log("warn", args, message, error);
|
|
16
|
+
}
|
|
17
|
+
debug(args, message, error) {
|
|
18
|
+
this.log("debug", args, message, error);
|
|
19
|
+
}
|
|
20
|
+
error(args, message, error) {
|
|
21
|
+
this.log("error", args, message, error);
|
|
22
|
+
}
|
|
23
|
+
log(level, args, message, error) {
|
|
24
|
+
this.pino[level]({
|
|
25
|
+
...args != null && { ...this.resolveArgs(args) },
|
|
26
|
+
...error != null && { err: this.serializeError(error) }
|
|
27
|
+
}, message);
|
|
28
|
+
}
|
|
29
|
+
resolveArgs({ safe, unsafe }) {
|
|
30
|
+
return {
|
|
31
|
+
...safe,
|
|
32
|
+
...unsafe != null && mapValues(unsafe, (value) => this.redactValue(value))
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
serializeError(error) {
|
|
36
|
+
if (!isError(error)) return { message: this.redactValue(String(error)) };
|
|
37
|
+
const { name, message, stack, ...errorProps } = error;
|
|
38
|
+
return {
|
|
39
|
+
type: name,
|
|
40
|
+
message: this.redactValue(message),
|
|
41
|
+
stack,
|
|
42
|
+
...!isEmpty(errorProps) && { props: this.redactValue(errorProps) }
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { MosaicLogger };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=MosaicLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.js","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport type { Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,QACZ,UAAU,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,CAAC,QAAQ,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const require_redactValueForGrafana = require("../utils/redactValueForGrafana.cjs");
|
|
2
|
+
const require_MosaicLogger = require("./MosaicLogger.cjs");
|
|
3
|
+
//#region src/logger/createLogFactory.ts
|
|
4
|
+
function createLogFactory(pino, asyncLocalStorageFactory, redactValue = require_redactValueForGrafana.redactValueForGrafana) {
|
|
5
|
+
const baseLogger = new require_MosaicLogger.MosaicLogger(pino, redactValue);
|
|
6
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
7
|
+
function getLogger() {
|
|
8
|
+
return asyncLocalStorage.getStore() ?? baseLogger;
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
getLogger,
|
|
12
|
+
withLogContext: (context, callback) => {
|
|
13
|
+
return asyncLocalStorage.run(getLogger().child(context), callback);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.createLogFactory = createLogFactory;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=createLogFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.cjs","names":["redactValueForGrafana","MosaicLogger"],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0CA,8BAAAA,uBAC9B;CACZ,MAAM,aAAa,IAAIC,qBAAAA,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./MosaicLogger.cjs";
|
|
2
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
|
+
import { Logger } from "pino";
|
|
4
|
+
|
|
5
|
+
//#region src/logger/createLogFactory.d.ts
|
|
6
|
+
interface LogFactory {
|
|
7
|
+
getLogger: () => MosaicLogger;
|
|
8
|
+
withLogContext: <TReturn>(context: LogArgs, callback: () => TReturn) => TReturn;
|
|
9
|
+
}
|
|
10
|
+
declare function createLogFactory(pino: Logger, asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>, redactValue?: (value: unknown) => string): LogFactory;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { LogFactory, createLogFactory };
|
|
13
|
+
//# sourceMappingURL=createLogFactory.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.d.cts","names":[],"sources":["../../src/logger/createLogFactory.ts"],"mappings":";;;;;UAKiB,UAAA;EACf,SAAA,QAAiB,YAAA;EACjB,cAAA,YACE,OAAA,EAAS,OAAA,EACT,QAAA,QAAgB,OAAA,KACb,OAAA;AAAA;AAAA,iBAGS,gBAAA,CACd,IAAA,EAAM,MAAA,EACN,wBAAA,QAAgC,iBAAA,CAAkB,YAAA,GAClD,WAAA,IAAc,KAAA,uBACb,UAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./MosaicLogger.js";
|
|
2
|
+
import { Logger } from "pino";
|
|
3
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4
|
+
|
|
5
|
+
//#region src/logger/createLogFactory.d.ts
|
|
6
|
+
interface LogFactory {
|
|
7
|
+
getLogger: () => MosaicLogger;
|
|
8
|
+
withLogContext: <TReturn>(context: LogArgs, callback: () => TReturn) => TReturn;
|
|
9
|
+
}
|
|
10
|
+
declare function createLogFactory(pino: Logger, asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>, redactValue?: (value: unknown) => string): LogFactory;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { LogFactory, createLogFactory };
|
|
13
|
+
//# sourceMappingURL=createLogFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.d.ts","names":[],"sources":["../../src/logger/createLogFactory.ts"],"mappings":";;;;;UAKiB,UAAA;EACf,SAAA,QAAiB,YAAA;EACjB,cAAA,YACE,OAAA,EAAS,OAAA,EACT,QAAA,QAAgB,OAAA,KACb,OAAA;AAAA;AAAA,iBAGS,gBAAA,CACd,IAAA,EAAM,MAAA,EACN,wBAAA,QAAgC,iBAAA,CAAkB,YAAA,GAClD,WAAA,IAAc,KAAA,uBACb,UAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { redactValueForGrafana } from "../utils/redactValueForGrafana.js";
|
|
2
|
+
import { MosaicLogger } from "./MosaicLogger.js";
|
|
3
|
+
//#region src/logger/createLogFactory.ts
|
|
4
|
+
function createLogFactory(pino, asyncLocalStorageFactory, redactValue = redactValueForGrafana) {
|
|
5
|
+
const baseLogger = new MosaicLogger(pino, redactValue);
|
|
6
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
7
|
+
function getLogger() {
|
|
8
|
+
return asyncLocalStorage.getStore() ?? baseLogger;
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
getLogger,
|
|
12
|
+
withLogContext: (context, callback) => {
|
|
13
|
+
return asyncLocalStorage.run(getLogger().child(context), callback);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createLogFactory };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=createLogFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.js","names":[],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0C,uBAC9B;CACZ,MAAM,aAAa,IAAI,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_createLogFactory = require("./createLogFactory.cjs");
|
|
3
|
+
const require_createPinoInstance = require("./createPinoInstance.cjs");
|
|
4
|
+
const require_createTracerFactory = require("../tracer/createTracerFactory.cjs");
|
|
5
|
+
let node_async_hooks = require("node:async_hooks");
|
|
6
|
+
//#region src/logger/createLoggerRuntime.ts
|
|
7
|
+
function createLoggerRuntime({ env, pino = require_createPinoInstance.createPinoInstance(env) }) {
|
|
8
|
+
return {
|
|
9
|
+
...require_createLogFactory.createLogFactory(pino, () => new node_async_hooks.AsyncLocalStorage()),
|
|
10
|
+
...require_createTracerFactory.createTracerFactory(() => new node_async_hooks.AsyncLocalStorage())
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.createLoggerRuntime = createLoggerRuntime;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=createLoggerRuntime.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.cjs","names":["createPinoInstance","createLogFactory","AsyncLocalStorage","createTracerFactory"],"sources":["../../src/logger/createLoggerRuntime.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { BaseEnvConfig } from \"@percepta/utils\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport {\n createTracerFactory,\n type Tracer,\n type TracerFactory,\n} from \"../tracer/createTracerFactory\";\nimport { createLogFactory, type LogFactory } from \"./createLogFactory\";\nimport { createPinoInstance } from \"./createPinoInstance\";\nimport type { MosaicLogger } from \"./MosaicLogger\";\n\nexport interface CreateLoggerRuntimeConfig {\n readonly env: BaseEnvConfig;\n readonly pino?: PinoLogger;\n}\n\nexport type LoggerRuntime = LogFactory & TracerFactory;\n\nexport function createLoggerRuntime({\n env,\n pino = createPinoInstance(env),\n}: CreateLoggerRuntimeConfig): LoggerRuntime {\n return {\n ...createLogFactory(pino, () => new AsyncLocalStorage<MosaicLogger>()),\n ...createTracerFactory(() => new AsyncLocalStorage<Tracer>()),\n };\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,oBAAoB,EAClC,KACA,OAAOA,2BAAAA,mBAAmB,IAAI,IACa;AAC3C,QAAO;EACL,GAAGC,yBAAAA,iBAAiB,YAAY,IAAIC,iBAAAA,mBAAiC,CAAC;EACtE,GAAGC,4BAAAA,0BAA0B,IAAID,iBAAAA,mBAA2B,CAAC;EAC9D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LogFactory } from "./createLogFactory.cjs";
|
|
2
|
+
import { TracerFactory } from "../tracer/createTracerFactory.cjs";
|
|
3
|
+
import { Logger } from "pino";
|
|
4
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
5
|
+
|
|
6
|
+
//#region src/logger/createLoggerRuntime.d.ts
|
|
7
|
+
interface CreateLoggerRuntimeConfig {
|
|
8
|
+
readonly env: BaseEnvConfig;
|
|
9
|
+
readonly pino?: Logger;
|
|
10
|
+
}
|
|
11
|
+
type LoggerRuntime = LogFactory & TracerFactory;
|
|
12
|
+
declare function createLoggerRuntime({
|
|
13
|
+
env,
|
|
14
|
+
pino
|
|
15
|
+
}: CreateLoggerRuntimeConfig): LoggerRuntime;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime };
|
|
18
|
+
//# sourceMappingURL=createLoggerRuntime.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.d.cts","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"mappings":";;;;;;UAYiB,yBAAA;EAAA,SACN,GAAA,EAAK,aAAA;EAAA,SACL,IAAA,GAAO,MAAA;AAAA;AAAA,KAGN,aAAA,GAAgB,UAAA,GAAa,aAAA;AAAA,iBAEzB,mBAAA,CAAA;EACd,GAAA;EACA;AAAA,GACC,yBAAA,GAA4B,aAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LogFactory } from "./createLogFactory.js";
|
|
2
|
+
import { TracerFactory } from "../tracer/createTracerFactory.js";
|
|
3
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
4
|
+
import { Logger } from "pino";
|
|
5
|
+
|
|
6
|
+
//#region src/logger/createLoggerRuntime.d.ts
|
|
7
|
+
interface CreateLoggerRuntimeConfig {
|
|
8
|
+
readonly env: BaseEnvConfig;
|
|
9
|
+
readonly pino?: Logger;
|
|
10
|
+
}
|
|
11
|
+
type LoggerRuntime = LogFactory & TracerFactory;
|
|
12
|
+
declare function createLoggerRuntime({
|
|
13
|
+
env,
|
|
14
|
+
pino
|
|
15
|
+
}: CreateLoggerRuntimeConfig): LoggerRuntime;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime };
|
|
18
|
+
//# sourceMappingURL=createLoggerRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.d.ts","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"mappings":";;;;;;UAYiB,yBAAA;EAAA,SACN,GAAA,EAAK,aAAA;EAAA,SACL,IAAA,GAAO,MAAA;AAAA;AAAA,KAGN,aAAA,GAAgB,UAAA,GAAa,aAAA;AAAA,iBAEzB,mBAAA,CAAA;EACd,GAAA;EACA;AAAA,GACC,yBAAA,GAA4B,aAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createLogFactory } from "./createLogFactory.js";
|
|
2
|
+
import { createPinoInstance } from "./createPinoInstance.js";
|
|
3
|
+
import { createTracerFactory } from "../tracer/createTracerFactory.js";
|
|
4
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
|
+
//#region src/logger/createLoggerRuntime.ts
|
|
6
|
+
function createLoggerRuntime({ env, pino = createPinoInstance(env) }) {
|
|
7
|
+
return {
|
|
8
|
+
...createLogFactory(pino, () => new AsyncLocalStorage()),
|
|
9
|
+
...createTracerFactory(() => new AsyncLocalStorage())
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createLoggerRuntime };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=createLoggerRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.js","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { BaseEnvConfig } from \"@percepta/utils\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport {\n createTracerFactory,\n type Tracer,\n type TracerFactory,\n} from \"../tracer/createTracerFactory\";\nimport { createLogFactory, type LogFactory } from \"./createLogFactory\";\nimport { createPinoInstance } from \"./createPinoInstance\";\nimport type { MosaicLogger } from \"./MosaicLogger\";\n\nexport interface CreateLoggerRuntimeConfig {\n readonly env: BaseEnvConfig;\n readonly pino?: PinoLogger;\n}\n\nexport type LoggerRuntime = LogFactory & TracerFactory;\n\nexport function createLoggerRuntime({\n env,\n pino = createPinoInstance(env),\n}: CreateLoggerRuntimeConfig): LoggerRuntime {\n return {\n ...createLogFactory(pino, () => new AsyncLocalStorage<MosaicLogger>()),\n ...createTracerFactory(() => new AsyncLocalStorage<Tracer>()),\n };\n}\n"],"mappings":";;;;;AAmBA,SAAgB,oBAAoB,EAClC,KACA,OAAO,mBAAmB,IAAI,IACa;AAC3C,QAAO;EACL,GAAG,iBAAiB,YAAY,IAAI,mBAAiC,CAAC;EACtE,GAAG,0BAA0B,IAAI,mBAA2B,CAAC;EAC9D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let _percepta_utils = require("@percepta/utils");
|
|
3
|
+
let pino = require("pino");
|
|
4
|
+
pino = require_runtime.__toESM(pino, 1);
|
|
5
|
+
let pino_pretty = require("pino-pretty");
|
|
6
|
+
pino_pretty = require_runtime.__toESM(pino_pretty, 1);
|
|
7
|
+
//#region src/logger/createPinoInstance.ts
|
|
8
|
+
function createPinoInstance(config) {
|
|
9
|
+
const nodeEnv = config.NODE_ENV;
|
|
10
|
+
const level = config.LOG_LEVEL;
|
|
11
|
+
switch (nodeEnv) {
|
|
12
|
+
case "production": return (0, pino.default)({
|
|
13
|
+
level,
|
|
14
|
+
formatters: { level: (label) => ({ level: label }) }
|
|
15
|
+
});
|
|
16
|
+
case "development":
|
|
17
|
+
case "test": return (0, pino.default)({ level }, (0, pino_pretty.default)({
|
|
18
|
+
colorize: true,
|
|
19
|
+
translateTime: "SYS:standard",
|
|
20
|
+
ignore: "pid,hostname"
|
|
21
|
+
}));
|
|
22
|
+
default: return (0, _percepta_utils.assertNever)(nodeEnv);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.createPinoInstance = createPinoInstance;
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=createPinoInstance.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.cjs","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"sourcesContent":["import { type BaseEnvConfig, assertNever } from \"@percepta/utils\";\nimport pino, { type Logger } from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport function createPinoInstance(config: BaseEnvConfig): Logger {\n const nodeEnv = config.NODE_ENV;\n const level = config.LOG_LEVEL;\n\n switch (nodeEnv) {\n case \"production\":\n return pino({\n level,\n formatters: {\n level: (label) => ({ level: label }),\n },\n });\n case \"development\":\n case \"test\":\n // Development: use pino-pretty synchronously (avoids worker thread issues with Next.js/Turbopack)\n return pino(\n { level },\n pretty({\n colorize: true,\n translateTime: \"SYS:standard\",\n ignore: \"pid,hostname\",\n }),\n );\n default:\n return assertNever(nodeEnv);\n }\n}\n"],"mappings":";;;;;;;AAIA,SAAgB,mBAAmB,QAA+B;CAChE,MAAM,UAAU,OAAO;CACvB,MAAM,QAAQ,OAAO;AAErB,SAAQ,SAAR;EACE,KAAK,aACH,SAAA,GAAA,KAAA,SAAY;GACV;GACA,YAAY,EACV,QAAQ,WAAW,EAAE,OAAO,OAAO,GACpC;GACF,CAAC;EACJ,KAAK;EACL,KAAK,OAEH,SAAA,GAAA,KAAA,SACE,EAAE,OAAO,GAAA,GAAA,YAAA,SACF;GACL,UAAU;GACV,eAAe;GACf,QAAQ;GACT,CAAC,CACH;EACH,QACE,SAAA,GAAA,gBAAA,aAAmB,QAAQ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
3
|
+
|
|
4
|
+
//#region src/logger/createPinoInstance.d.ts
|
|
5
|
+
declare function createPinoInstance(config: BaseEnvConfig): Logger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { createPinoInstance };
|
|
8
|
+
//# sourceMappingURL=createPinoInstance.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.d.cts","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"mappings":";;;;iBAIgB,kBAAA,CAAmB,MAAA,EAAQ,aAAA,GAAgB,MAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
2
|
+
import { Logger } from "pino";
|
|
3
|
+
|
|
4
|
+
//#region src/logger/createPinoInstance.d.ts
|
|
5
|
+
declare function createPinoInstance(config: BaseEnvConfig): Logger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { createPinoInstance };
|
|
8
|
+
//# sourceMappingURL=createPinoInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.d.ts","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"mappings":";;;;iBAIgB,kBAAA,CAAmB,MAAA,EAAQ,aAAA,GAAgB,MAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { assertNever } from "@percepta/utils";
|
|
2
|
+
import pino from "pino";
|
|
3
|
+
import pretty from "pino-pretty";
|
|
4
|
+
//#region src/logger/createPinoInstance.ts
|
|
5
|
+
function createPinoInstance(config) {
|
|
6
|
+
const nodeEnv = config.NODE_ENV;
|
|
7
|
+
const level = config.LOG_LEVEL;
|
|
8
|
+
switch (nodeEnv) {
|
|
9
|
+
case "production": return pino({
|
|
10
|
+
level,
|
|
11
|
+
formatters: { level: (label) => ({ level: label }) }
|
|
12
|
+
});
|
|
13
|
+
case "development":
|
|
14
|
+
case "test": return pino({ level }, pretty({
|
|
15
|
+
colorize: true,
|
|
16
|
+
translateTime: "SYS:standard",
|
|
17
|
+
ignore: "pid,hostname"
|
|
18
|
+
}));
|
|
19
|
+
default: return assertNever(nodeEnv);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { createPinoInstance };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=createPinoInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.js","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"sourcesContent":["import { type BaseEnvConfig, assertNever } from \"@percepta/utils\";\nimport pino, { type Logger } from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport function createPinoInstance(config: BaseEnvConfig): Logger {\n const nodeEnv = config.NODE_ENV;\n const level = config.LOG_LEVEL;\n\n switch (nodeEnv) {\n case \"production\":\n return pino({\n level,\n formatters: {\n level: (label) => ({ level: label }),\n },\n });\n case \"development\":\n case \"test\":\n // Development: use pino-pretty synchronously (avoids worker thread issues with Next.js/Turbopack)\n return pino(\n { level },\n pretty({\n colorize: true,\n translateTime: \"SYS:standard\",\n ignore: \"pid,hostname\",\n }),\n );\n default:\n return assertNever(nodeEnv);\n }\n}\n"],"mappings":";;;;AAIA,SAAgB,mBAAmB,QAA+B;CAChE,MAAM,UAAU,OAAO;CACvB,MAAM,QAAQ,OAAO;AAErB,SAAQ,SAAR;EACE,KAAK,aACH,QAAO,KAAK;GACV;GACA,YAAY,EACV,QAAQ,WAAW,EAAE,OAAO,OAAO,GACpC;GACF,CAAC;EACJ,KAAK;EACL,KAAK,OAEH,QAAO,KACL,EAAE,OAAO,EACT,OAAO;GACL,UAAU;GACV,eAAe;GACf,QAAQ;GACT,CAAC,CACH;EACH,QACE,QAAO,YAAY,QAAQ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tracer/createTracerFactory.ts
|
|
2
|
+
function createTracerFactory(asyncLocalStorageFactory) {
|
|
3
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
4
|
+
return {
|
|
5
|
+
getTracer: () => asyncLocalStorage.getStore(),
|
|
6
|
+
withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.createTracerFactory = createTracerFactory;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=createTracerFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.cjs","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
|
|
3
|
+
//#region src/tracer/createTracerFactory.d.ts
|
|
4
|
+
interface Tracer {
|
|
5
|
+
traceId: string;
|
|
6
|
+
}
|
|
7
|
+
interface TracerFactory {
|
|
8
|
+
getTracer: () => Tracer | undefined;
|
|
9
|
+
withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;
|
|
10
|
+
}
|
|
11
|
+
declare function createTracerFactory(asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>): TracerFactory;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Tracer, TracerFactory, createTracerFactory };
|
|
14
|
+
//# sourceMappingURL=createTracerFactory.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.d.cts","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"mappings":";;;UAEiB,MAAA;EACf,OAAA;AAAA;AAAA,UAGe,aAAA;EACf,SAAA,QAAiB,MAAA;EACjB,UAAA,YAAsB,MAAA,EAAQ,MAAA,EAAQ,QAAA,QAAgB,OAAA,KAAY,OAAA;AAAA;AAAA,iBAGpD,mBAAA,CACd,wBAAA,QAAgC,iBAAA,CAAkB,MAAA,IACjD,aAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
|
|
3
|
+
//#region src/tracer/createTracerFactory.d.ts
|
|
4
|
+
interface Tracer {
|
|
5
|
+
traceId: string;
|
|
6
|
+
}
|
|
7
|
+
interface TracerFactory {
|
|
8
|
+
getTracer: () => Tracer | undefined;
|
|
9
|
+
withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;
|
|
10
|
+
}
|
|
11
|
+
declare function createTracerFactory(asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>): TracerFactory;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Tracer, TracerFactory, createTracerFactory };
|
|
14
|
+
//# sourceMappingURL=createTracerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.d.ts","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"mappings":";;;UAEiB,MAAA;EACf,OAAA;AAAA;AAAA,UAGe,aAAA;EACf,SAAA,QAAiB,MAAA;EACjB,UAAA,YAAsB,MAAA,EAAQ,MAAA,EAAQ,QAAA,QAAgB,OAAA,KAAY,OAAA;AAAA;AAAA,iBAGpD,mBAAA,CACd,wBAAA,QAAgC,iBAAA,CAAkB,MAAA,IACjD,aAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tracer/createTracerFactory.ts
|
|
2
|
+
function createTracerFactory(asyncLocalStorageFactory) {
|
|
3
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
4
|
+
return {
|
|
5
|
+
getTracer: () => asyncLocalStorage.getStore(),
|
|
6
|
+
withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { createTracerFactory };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=createTracerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.js","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/utils/redactValueForGrafana.ts
|
|
2
|
+
function redactValueForGrafana(value) {
|
|
3
|
+
return `<redact>${JSON.stringify(value)}</redact>`;
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
exports.redactValueForGrafana = redactValueForGrafana;
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=redactValueForGrafana.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.cjs","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"sourcesContent":["export function redactValueForGrafana(value: unknown): string {\n return `<redact>${JSON.stringify(value)}</redact>`;\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,OAAwB;AAC5D,QAAO,WAAW,KAAK,UAAU,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.d.cts","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"mappings":";iBAAgB,qBAAA,CAAsB,KAAA"}
|