@noego/logger 0.0.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.
- package/README.md +62 -0
- package/dist/core/abstract_logger.cjs +140 -0
- package/dist/core/abstract_logger.cjs.map +1 -0
- package/dist/core/abstract_logger.d.cts +55 -0
- package/dist/core/abstract_logger.d.ts +55 -0
- package/dist/core/abstract_logger.js +116 -0
- package/dist/core/abstract_logger.js.map +1 -0
- package/dist/core/log_level.cjs +78 -0
- package/dist/core/log_level.cjs.map +1 -0
- package/dist/core/log_level.d.cts +12 -0
- package/dist/core/log_level.d.ts +12 -0
- package/dist/core/log_level.js +52 -0
- package/dist/core/log_level.js.map +1 -0
- package/dist/core/log_transport.cjs +17 -0
- package/dist/core/log_transport.cjs.map +1 -0
- package/dist/core/log_transport.d.cts +15 -0
- package/dist/core/log_transport.d.ts +15 -0
- package/dist/core/log_transport.js +1 -0
- package/dist/core/log_transport.js.map +1 -0
- package/dist/core/logging_manager.cjs +130 -0
- package/dist/core/logging_manager.cjs.map +1 -0
- package/dist/core/logging_manager.d.cts +44 -0
- package/dist/core/logging_manager.d.ts +44 -0
- package/dist/core/logging_manager.js +103 -0
- package/dist/core/logging_manager.js.map +1 -0
- package/dist/get_logger.cjs +33 -0
- package/dist/get_logger.cjs.map +1 -0
- package/dist/get_logger.d.cts +25 -0
- package/dist/get_logger.d.ts +25 -0
- package/dist/get_logger.js +9 -0
- package/dist/get_logger.js.map +1 -0
- package/dist/index.cjs +48 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/ioc/index.cjs +34 -0
- package/dist/ioc/index.cjs.map +1 -0
- package/dist/ioc/index.d.cts +41 -0
- package/dist/ioc/index.d.ts +41 -0
- package/dist/ioc/index.js +10 -0
- package/dist/ioc/index.js.map +1 -0
- package/dist/transports/console.cjs +31 -0
- package/dist/transports/console.cjs.map +1 -0
- package/dist/transports/console.d.cts +2 -0
- package/dist/transports/console.d.ts +2 -0
- package/dist/transports/console.js +7 -0
- package/dist/transports/console.js.map +1 -0
- package/dist/transports/console_transport.cjs +48 -0
- package/dist/transports/console_transport.cjs.map +1 -0
- package/dist/transports/console_transport.d.cts +7 -0
- package/dist/transports/console_transport.d.ts +7 -0
- package/dist/transports/console_transport.js +24 -0
- package/dist/transports/console_transport.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface LogEntry {
|
|
2
|
+
timestamp: string;
|
|
3
|
+
level: string;
|
|
4
|
+
logger: string;
|
|
5
|
+
message: string;
|
|
6
|
+
context?: unknown;
|
|
7
|
+
environment: string;
|
|
8
|
+
service: string;
|
|
9
|
+
}
|
|
10
|
+
interface LogTransport {
|
|
11
|
+
log(entry: LogEntry): Promise<void> | void;
|
|
12
|
+
close?(): Promise<void> | void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type { LogEntry, LogTransport };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface LogEntry {
|
|
2
|
+
timestamp: string;
|
|
3
|
+
level: string;
|
|
4
|
+
logger: string;
|
|
5
|
+
message: string;
|
|
6
|
+
context?: unknown;
|
|
7
|
+
environment: string;
|
|
8
|
+
service: string;
|
|
9
|
+
}
|
|
10
|
+
interface LogTransport {
|
|
11
|
+
log(entry: LogEntry): Promise<void> | void;
|
|
12
|
+
close?(): Promise<void> | void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type { LogEntry, LogTransport };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=log_transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var logging_manager_exports = {};
|
|
20
|
+
__export(logging_manager_exports, {
|
|
21
|
+
LoggingManager: () => LoggingManager,
|
|
22
|
+
configureLogging: () => configureLogging,
|
|
23
|
+
getManager: () => getManager,
|
|
24
|
+
shutdown: () => shutdown
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(logging_manager_exports);
|
|
27
|
+
var import_log_level = require("./log_level.cjs");
|
|
28
|
+
var import_console_transport = require("../transports/console_transport.cjs");
|
|
29
|
+
const MANAGER_SYMBOL = /* @__PURE__ */ Symbol.for("@noego/logger");
|
|
30
|
+
class LoggingManager {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.transports = [];
|
|
33
|
+
this.loggerLevels = /* @__PURE__ */ new Map();
|
|
34
|
+
const logLevelEnv = typeof process !== "undefined" ? process.env?.LOG_LEVEL : void 0;
|
|
35
|
+
const serviceNameEnv = typeof process !== "undefined" ? process.env?.SERVICE_NAME : void 0;
|
|
36
|
+
const nodeEnv = typeof process !== "undefined" ? process.env?.NODE_ENV : void 0;
|
|
37
|
+
this.level = (0, import_log_level.parseLogLevel)(logLevelEnv);
|
|
38
|
+
this.service = serviceNameEnv ?? "noego";
|
|
39
|
+
this.environment = nodeEnv ?? "development";
|
|
40
|
+
}
|
|
41
|
+
getLevel() {
|
|
42
|
+
return this.level;
|
|
43
|
+
}
|
|
44
|
+
setLevel(level) {
|
|
45
|
+
this.level = level;
|
|
46
|
+
}
|
|
47
|
+
setLoggerLevel(name, level) {
|
|
48
|
+
this.loggerLevels.set(name, level);
|
|
49
|
+
}
|
|
50
|
+
shouldLog(level, loggerName) {
|
|
51
|
+
if (loggerName) {
|
|
52
|
+
const loggerLevel = this.loggerLevels.get(loggerName);
|
|
53
|
+
if (loggerLevel !== void 0) {
|
|
54
|
+
return level >= loggerLevel;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return level >= this.level;
|
|
58
|
+
}
|
|
59
|
+
addTransport(transport) {
|
|
60
|
+
this.transports.push(transport);
|
|
61
|
+
}
|
|
62
|
+
setTransports(transports) {
|
|
63
|
+
this.transports = [...transports];
|
|
64
|
+
}
|
|
65
|
+
clearTransports() {
|
|
66
|
+
this.transports = [];
|
|
67
|
+
}
|
|
68
|
+
setServiceName(name) {
|
|
69
|
+
this.service = name;
|
|
70
|
+
}
|
|
71
|
+
log(entry) {
|
|
72
|
+
const fullEntry = {
|
|
73
|
+
...entry,
|
|
74
|
+
environment: this.environment,
|
|
75
|
+
service: this.service
|
|
76
|
+
};
|
|
77
|
+
for (const transport of this.transports) {
|
|
78
|
+
transport.log(fullEntry);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async closeAll() {
|
|
82
|
+
for (const transport of this.transports) {
|
|
83
|
+
if (transport.close) {
|
|
84
|
+
await transport.close();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
formatMessage(level, name, message) {
|
|
89
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
90
|
+
return `[${timestamp}] [${name}] [${(0, import_log_level.logLevelName)(level)}] ${message}`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function getManager() {
|
|
94
|
+
const global = globalThis;
|
|
95
|
+
if (!global[MANAGER_SYMBOL]) {
|
|
96
|
+
const manager = new LoggingManager();
|
|
97
|
+
manager.addTransport(new import_console_transport.ConsoleTransport());
|
|
98
|
+
global[MANAGER_SYMBOL] = manager;
|
|
99
|
+
}
|
|
100
|
+
return global[MANAGER_SYMBOL];
|
|
101
|
+
}
|
|
102
|
+
function configureLogging(options) {
|
|
103
|
+
const manager = getManager();
|
|
104
|
+
if (options.level !== void 0) {
|
|
105
|
+
manager.setLevel(options.level);
|
|
106
|
+
}
|
|
107
|
+
if (options.loggers) {
|
|
108
|
+
for (const [name, level] of Object.entries(options.loggers)) {
|
|
109
|
+
manager.setLoggerLevel(name, level);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (options.transports) {
|
|
113
|
+
manager.setTransports(options.transports);
|
|
114
|
+
}
|
|
115
|
+
if (options.serviceName) {
|
|
116
|
+
manager.setServiceName(options.serviceName);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function shutdown() {
|
|
120
|
+
const manager = getManager();
|
|
121
|
+
await manager.closeAll();
|
|
122
|
+
}
|
|
123
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
124
|
+
0 && (module.exports = {
|
|
125
|
+
LoggingManager,
|
|
126
|
+
configureLogging,
|
|
127
|
+
getManager,
|
|
128
|
+
shutdown
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=logging_manager.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/logging_manager.ts"],"sourcesContent":["import { LogLevel, logLevelName, parseLogLevel } from \"./log_level.cjs\";\nimport type { LogEntry, LogTransport } from \"./log_transport.cjs\";\nimport { ConsoleTransport } from \"../transports/console_transport.cjs\";\n\nconst MANAGER_SYMBOL = Symbol.for(\"@noego/logger\");\n\ninterface GlobalWithManager {\n [MANAGER_SYMBOL]?: LoggingManager;\n}\n\nexport interface ConfigureLoggingOptions {\n level?: LogLevel;\n loggers?: Record<string, LogLevel>;\n transports?: LogTransport[];\n serviceName?: string;\n}\n\nexport class LoggingManager {\n private level: LogLevel;\n private transports: LogTransport[] = [];\n private service: string;\n private readonly environment: string;\n private loggerLevels: Map<string, LogLevel> = new Map();\n\n constructor() {\n const logLevelEnv =\n typeof process !== \"undefined\" ? process.env?.LOG_LEVEL : undefined;\n const serviceNameEnv =\n typeof process !== \"undefined\" ? process.env?.SERVICE_NAME : undefined;\n const nodeEnv =\n typeof process !== \"undefined\" ? process.env?.NODE_ENV : undefined;\n\n this.level = parseLogLevel(logLevelEnv);\n this.service = serviceNameEnv ?? \"noego\";\n this.environment = nodeEnv ?? \"development\";\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n setLoggerLevel(name: string, level: LogLevel): void {\n this.loggerLevels.set(name, level);\n }\n\n shouldLog(level: LogLevel, loggerName?: string): boolean {\n if (loggerName) {\n const loggerLevel = this.loggerLevels.get(loggerName);\n if (loggerLevel !== undefined) {\n return level >= loggerLevel;\n }\n }\n return level >= this.level;\n }\n\n addTransport(transport: LogTransport): void {\n this.transports.push(transport);\n }\n\n setTransports(transports: LogTransport[]): void {\n this.transports = [...transports];\n }\n\n clearTransports(): void {\n this.transports = [];\n }\n\n setServiceName(name: string): void {\n this.service = name;\n }\n\n log(entry: Omit<LogEntry, \"environment\" | \"service\">): void {\n const fullEntry: LogEntry = {\n ...entry,\n environment: this.environment,\n service: this.service,\n };\n\n for (const transport of this.transports) {\n transport.log(fullEntry);\n }\n }\n\n async closeAll(): Promise<void> {\n for (const transport of this.transports) {\n if (transport.close) {\n await transport.close();\n }\n }\n }\n\n formatMessage(level: LogLevel, name: string, message: string): string {\n const timestamp = new Date().toISOString();\n return `[${timestamp}] [${name}] [${logLevelName(level)}] ${message}`;\n }\n}\n\n/**\n * Gets the global LoggingManager singleton instance.\n * Creates one with a default ConsoleTransport if it doesn't exist.\n */\nexport function getManager(): LoggingManager {\n const global = globalThis as GlobalWithManager;\n\n if (!global[MANAGER_SYMBOL]) {\n const manager = new LoggingManager();\n\n // Add default ConsoleTransport\n manager.addTransport(new ConsoleTransport());\n\n global[MANAGER_SYMBOL] = manager;\n }\n\n return global[MANAGER_SYMBOL];\n}\n\n/**\n * Configures the global LoggingManager instance.\n * This mutates the singleton instance returned by getManager().\n */\nexport function configureLogging(options: ConfigureLoggingOptions): void {\n const manager = getManager();\n\n if (options.level !== undefined) {\n manager.setLevel(options.level);\n }\n\n if (options.loggers) {\n for (const [name, level] of Object.entries(options.loggers)) {\n manager.setLoggerLevel(name, level);\n }\n }\n\n if (options.transports) {\n // Clear existing transports and add new ones\n manager.setTransports(options.transports);\n }\n\n if (options.serviceName) {\n // Update service name\n manager.setServiceName(options.serviceName);\n }\n}\n\n/**\n * Shuts down the global LoggingManager by closing all transports.\n */\nexport async function shutdown(): Promise<void> {\n const manager = getManager();\n await manager.closeAll();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsD;AAEtD,+BAAiC;AAEjC,MAAM,iBAAiB,uBAAO,IAAI,eAAe;AAa1C,MAAM,eAAe;AAAA,EAO1B,cAAc;AALd,SAAQ,aAA6B,CAAC;AAGtC,SAAQ,eAAsC,oBAAI,IAAI;AAGpD,UAAM,cACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,YAAY;AAC5D,UAAM,iBACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,eAAe;AAC/D,UAAM,UACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,WAAW;AAE3D,SAAK,YAAQ,gCAAc,WAAW;AACtC,SAAK,UAAU,kBAAkB;AACjC,SAAK,cAAc,WAAW;AAAA,EAChC;AAAA,EAEA,WAAqB;AACnB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,eAAe,MAAc,OAAuB;AAClD,SAAK,aAAa,IAAI,MAAM,KAAK;AAAA,EACnC;AAAA,EAEA,UAAU,OAAiB,YAA8B;AACvD,QAAI,YAAY;AACd,YAAM,cAAc,KAAK,aAAa,IAAI,UAAU;AACpD,UAAI,gBAAgB,QAAW;AAC7B,eAAO,SAAS;AAAA,MAClB;AAAA,IACF;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,aAAa,WAA+B;AAC1C,SAAK,WAAW,KAAK,SAAS;AAAA,EAChC;AAAA,EAEA,cAAc,YAAkC;AAC9C,SAAK,aAAa,CAAC,GAAG,UAAU;AAAA,EAClC;AAAA,EAEA,kBAAwB;AACtB,SAAK,aAAa,CAAC;AAAA,EACrB;AAAA,EAEA,eAAe,MAAoB;AACjC,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,OAAwD;AAC1D,UAAM,YAAsB;AAAA,MAC1B,GAAG;AAAA,MACH,aAAa,KAAK;AAAA,MAClB,SAAS,KAAK;AAAA,IAChB;AAEA,eAAW,aAAa,KAAK,YAAY;AACvC,gBAAU,IAAI,SAAS;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,MAAM,WAA0B;AAC9B,eAAW,aAAa,KAAK,YAAY;AACvC,UAAI,UAAU,OAAO;AACnB,cAAM,UAAU,MAAM;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,cAAc,OAAiB,MAAc,SAAyB;AACpE,UAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AACzC,WAAO,IAAI,SAAS,MAAM,IAAI,UAAM,+BAAa,KAAK,CAAC,KAAK,OAAO;AAAA,EACrE;AACF;AAMO,SAAS,aAA6B;AAC3C,QAAM,SAAS;AAEf,MAAI,CAAC,OAAO,cAAc,GAAG;AAC3B,UAAM,UAAU,IAAI,eAAe;AAGnC,YAAQ,aAAa,IAAI,0CAAiB,CAAC;AAE3C,WAAO,cAAc,IAAI;AAAA,EAC3B;AAEA,SAAO,OAAO,cAAc;AAC9B;AAMO,SAAS,iBAAiB,SAAwC;AACvE,QAAM,UAAU,WAAW;AAE3B,MAAI,QAAQ,UAAU,QAAW;AAC/B,YAAQ,SAAS,QAAQ,KAAK;AAAA,EAChC;AAEA,MAAI,QAAQ,SAAS;AACnB,eAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,QAAQ,OAAO,GAAG;AAC3D,cAAQ,eAAe,MAAM,KAAK;AAAA,IACpC;AAAA,EACF;AAEA,MAAI,QAAQ,YAAY;AAEtB,YAAQ,cAAc,QAAQ,UAAU;AAAA,EAC1C;AAEA,MAAI,QAAQ,aAAa;AAEvB,YAAQ,eAAe,QAAQ,WAAW;AAAA,EAC5C;AACF;AAKA,eAAsB,WAA0B;AAC9C,QAAM,UAAU,WAAW;AAC3B,QAAM,QAAQ,SAAS;AACzB;","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { LogLevel } from './log_level.cjs';
|
|
2
|
+
import { LogTransport, LogEntry } from './log_transport.cjs';
|
|
3
|
+
|
|
4
|
+
interface ConfigureLoggingOptions {
|
|
5
|
+
level?: LogLevel;
|
|
6
|
+
loggers?: Record<string, LogLevel>;
|
|
7
|
+
transports?: LogTransport[];
|
|
8
|
+
serviceName?: string;
|
|
9
|
+
}
|
|
10
|
+
declare class LoggingManager {
|
|
11
|
+
private level;
|
|
12
|
+
private transports;
|
|
13
|
+
private service;
|
|
14
|
+
private readonly environment;
|
|
15
|
+
private loggerLevels;
|
|
16
|
+
constructor();
|
|
17
|
+
getLevel(): LogLevel;
|
|
18
|
+
setLevel(level: LogLevel): void;
|
|
19
|
+
setLoggerLevel(name: string, level: LogLevel): void;
|
|
20
|
+
shouldLog(level: LogLevel, loggerName?: string): boolean;
|
|
21
|
+
addTransport(transport: LogTransport): void;
|
|
22
|
+
setTransports(transports: LogTransport[]): void;
|
|
23
|
+
clearTransports(): void;
|
|
24
|
+
setServiceName(name: string): void;
|
|
25
|
+
log(entry: Omit<LogEntry, "environment" | "service">): void;
|
|
26
|
+
closeAll(): Promise<void>;
|
|
27
|
+
formatMessage(level: LogLevel, name: string, message: string): string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Gets the global LoggingManager singleton instance.
|
|
31
|
+
* Creates one with a default ConsoleTransport if it doesn't exist.
|
|
32
|
+
*/
|
|
33
|
+
declare function getManager(): LoggingManager;
|
|
34
|
+
/**
|
|
35
|
+
* Configures the global LoggingManager instance.
|
|
36
|
+
* This mutates the singleton instance returned by getManager().
|
|
37
|
+
*/
|
|
38
|
+
declare function configureLogging(options: ConfigureLoggingOptions): void;
|
|
39
|
+
/**
|
|
40
|
+
* Shuts down the global LoggingManager by closing all transports.
|
|
41
|
+
*/
|
|
42
|
+
declare function shutdown(): Promise<void>;
|
|
43
|
+
|
|
44
|
+
export { type ConfigureLoggingOptions, LoggingManager, configureLogging, getManager, shutdown };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { LogLevel } from './log_level.js';
|
|
2
|
+
import { LogTransport, LogEntry } from './log_transport.js';
|
|
3
|
+
|
|
4
|
+
interface ConfigureLoggingOptions {
|
|
5
|
+
level?: LogLevel;
|
|
6
|
+
loggers?: Record<string, LogLevel>;
|
|
7
|
+
transports?: LogTransport[];
|
|
8
|
+
serviceName?: string;
|
|
9
|
+
}
|
|
10
|
+
declare class LoggingManager {
|
|
11
|
+
private level;
|
|
12
|
+
private transports;
|
|
13
|
+
private service;
|
|
14
|
+
private readonly environment;
|
|
15
|
+
private loggerLevels;
|
|
16
|
+
constructor();
|
|
17
|
+
getLevel(): LogLevel;
|
|
18
|
+
setLevel(level: LogLevel): void;
|
|
19
|
+
setLoggerLevel(name: string, level: LogLevel): void;
|
|
20
|
+
shouldLog(level: LogLevel, loggerName?: string): boolean;
|
|
21
|
+
addTransport(transport: LogTransport): void;
|
|
22
|
+
setTransports(transports: LogTransport[]): void;
|
|
23
|
+
clearTransports(): void;
|
|
24
|
+
setServiceName(name: string): void;
|
|
25
|
+
log(entry: Omit<LogEntry, "environment" | "service">): void;
|
|
26
|
+
closeAll(): Promise<void>;
|
|
27
|
+
formatMessage(level: LogLevel, name: string, message: string): string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Gets the global LoggingManager singleton instance.
|
|
31
|
+
* Creates one with a default ConsoleTransport if it doesn't exist.
|
|
32
|
+
*/
|
|
33
|
+
declare function getManager(): LoggingManager;
|
|
34
|
+
/**
|
|
35
|
+
* Configures the global LoggingManager instance.
|
|
36
|
+
* This mutates the singleton instance returned by getManager().
|
|
37
|
+
*/
|
|
38
|
+
declare function configureLogging(options: ConfigureLoggingOptions): void;
|
|
39
|
+
/**
|
|
40
|
+
* Shuts down the global LoggingManager by closing all transports.
|
|
41
|
+
*/
|
|
42
|
+
declare function shutdown(): Promise<void>;
|
|
43
|
+
|
|
44
|
+
export { type ConfigureLoggingOptions, LoggingManager, configureLogging, getManager, shutdown };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { logLevelName, parseLogLevel } from "./log_level.js";
|
|
2
|
+
import { ConsoleTransport } from "../transports/console_transport.js";
|
|
3
|
+
const MANAGER_SYMBOL = /* @__PURE__ */ Symbol.for("@noego/logger");
|
|
4
|
+
class LoggingManager {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.transports = [];
|
|
7
|
+
this.loggerLevels = /* @__PURE__ */ new Map();
|
|
8
|
+
const logLevelEnv = typeof process !== "undefined" ? process.env?.LOG_LEVEL : void 0;
|
|
9
|
+
const serviceNameEnv = typeof process !== "undefined" ? process.env?.SERVICE_NAME : void 0;
|
|
10
|
+
const nodeEnv = typeof process !== "undefined" ? process.env?.NODE_ENV : void 0;
|
|
11
|
+
this.level = parseLogLevel(logLevelEnv);
|
|
12
|
+
this.service = serviceNameEnv ?? "noego";
|
|
13
|
+
this.environment = nodeEnv ?? "development";
|
|
14
|
+
}
|
|
15
|
+
getLevel() {
|
|
16
|
+
return this.level;
|
|
17
|
+
}
|
|
18
|
+
setLevel(level) {
|
|
19
|
+
this.level = level;
|
|
20
|
+
}
|
|
21
|
+
setLoggerLevel(name, level) {
|
|
22
|
+
this.loggerLevels.set(name, level);
|
|
23
|
+
}
|
|
24
|
+
shouldLog(level, loggerName) {
|
|
25
|
+
if (loggerName) {
|
|
26
|
+
const loggerLevel = this.loggerLevels.get(loggerName);
|
|
27
|
+
if (loggerLevel !== void 0) {
|
|
28
|
+
return level >= loggerLevel;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return level >= this.level;
|
|
32
|
+
}
|
|
33
|
+
addTransport(transport) {
|
|
34
|
+
this.transports.push(transport);
|
|
35
|
+
}
|
|
36
|
+
setTransports(transports) {
|
|
37
|
+
this.transports = [...transports];
|
|
38
|
+
}
|
|
39
|
+
clearTransports() {
|
|
40
|
+
this.transports = [];
|
|
41
|
+
}
|
|
42
|
+
setServiceName(name) {
|
|
43
|
+
this.service = name;
|
|
44
|
+
}
|
|
45
|
+
log(entry) {
|
|
46
|
+
const fullEntry = {
|
|
47
|
+
...entry,
|
|
48
|
+
environment: this.environment,
|
|
49
|
+
service: this.service
|
|
50
|
+
};
|
|
51
|
+
for (const transport of this.transports) {
|
|
52
|
+
transport.log(fullEntry);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async closeAll() {
|
|
56
|
+
for (const transport of this.transports) {
|
|
57
|
+
if (transport.close) {
|
|
58
|
+
await transport.close();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
formatMessage(level, name, message) {
|
|
63
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
64
|
+
return `[${timestamp}] [${name}] [${logLevelName(level)}] ${message}`;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function getManager() {
|
|
68
|
+
const global = globalThis;
|
|
69
|
+
if (!global[MANAGER_SYMBOL]) {
|
|
70
|
+
const manager = new LoggingManager();
|
|
71
|
+
manager.addTransport(new ConsoleTransport());
|
|
72
|
+
global[MANAGER_SYMBOL] = manager;
|
|
73
|
+
}
|
|
74
|
+
return global[MANAGER_SYMBOL];
|
|
75
|
+
}
|
|
76
|
+
function configureLogging(options) {
|
|
77
|
+
const manager = getManager();
|
|
78
|
+
if (options.level !== void 0) {
|
|
79
|
+
manager.setLevel(options.level);
|
|
80
|
+
}
|
|
81
|
+
if (options.loggers) {
|
|
82
|
+
for (const [name, level] of Object.entries(options.loggers)) {
|
|
83
|
+
manager.setLoggerLevel(name, level);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (options.transports) {
|
|
87
|
+
manager.setTransports(options.transports);
|
|
88
|
+
}
|
|
89
|
+
if (options.serviceName) {
|
|
90
|
+
manager.setServiceName(options.serviceName);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async function shutdown() {
|
|
94
|
+
const manager = getManager();
|
|
95
|
+
await manager.closeAll();
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
LoggingManager,
|
|
99
|
+
configureLogging,
|
|
100
|
+
getManager,
|
|
101
|
+
shutdown
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=logging_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/logging_manager.ts"],"sourcesContent":["import { LogLevel, logLevelName, parseLogLevel } from \"./log_level.js\";\nimport type { LogEntry, LogTransport } from \"./log_transport.js\";\nimport { ConsoleTransport } from \"../transports/console_transport.js\";\n\nconst MANAGER_SYMBOL = Symbol.for(\"@noego/logger\");\n\ninterface GlobalWithManager {\n [MANAGER_SYMBOL]?: LoggingManager;\n}\n\nexport interface ConfigureLoggingOptions {\n level?: LogLevel;\n loggers?: Record<string, LogLevel>;\n transports?: LogTransport[];\n serviceName?: string;\n}\n\nexport class LoggingManager {\n private level: LogLevel;\n private transports: LogTransport[] = [];\n private service: string;\n private readonly environment: string;\n private loggerLevels: Map<string, LogLevel> = new Map();\n\n constructor() {\n const logLevelEnv =\n typeof process !== \"undefined\" ? process.env?.LOG_LEVEL : undefined;\n const serviceNameEnv =\n typeof process !== \"undefined\" ? process.env?.SERVICE_NAME : undefined;\n const nodeEnv =\n typeof process !== \"undefined\" ? process.env?.NODE_ENV : undefined;\n\n this.level = parseLogLevel(logLevelEnv);\n this.service = serviceNameEnv ?? \"noego\";\n this.environment = nodeEnv ?? \"development\";\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n setLoggerLevel(name: string, level: LogLevel): void {\n this.loggerLevels.set(name, level);\n }\n\n shouldLog(level: LogLevel, loggerName?: string): boolean {\n if (loggerName) {\n const loggerLevel = this.loggerLevels.get(loggerName);\n if (loggerLevel !== undefined) {\n return level >= loggerLevel;\n }\n }\n return level >= this.level;\n }\n\n addTransport(transport: LogTransport): void {\n this.transports.push(transport);\n }\n\n setTransports(transports: LogTransport[]): void {\n this.transports = [...transports];\n }\n\n clearTransports(): void {\n this.transports = [];\n }\n\n setServiceName(name: string): void {\n this.service = name;\n }\n\n log(entry: Omit<LogEntry, \"environment\" | \"service\">): void {\n const fullEntry: LogEntry = {\n ...entry,\n environment: this.environment,\n service: this.service,\n };\n\n for (const transport of this.transports) {\n transport.log(fullEntry);\n }\n }\n\n async closeAll(): Promise<void> {\n for (const transport of this.transports) {\n if (transport.close) {\n await transport.close();\n }\n }\n }\n\n formatMessage(level: LogLevel, name: string, message: string): string {\n const timestamp = new Date().toISOString();\n return `[${timestamp}] [${name}] [${logLevelName(level)}] ${message}`;\n }\n}\n\n/**\n * Gets the global LoggingManager singleton instance.\n * Creates one with a default ConsoleTransport if it doesn't exist.\n */\nexport function getManager(): LoggingManager {\n const global = globalThis as GlobalWithManager;\n\n if (!global[MANAGER_SYMBOL]) {\n const manager = new LoggingManager();\n\n // Add default ConsoleTransport\n manager.addTransport(new ConsoleTransport());\n\n global[MANAGER_SYMBOL] = manager;\n }\n\n return global[MANAGER_SYMBOL];\n}\n\n/**\n * Configures the global LoggingManager instance.\n * This mutates the singleton instance returned by getManager().\n */\nexport function configureLogging(options: ConfigureLoggingOptions): void {\n const manager = getManager();\n\n if (options.level !== undefined) {\n manager.setLevel(options.level);\n }\n\n if (options.loggers) {\n for (const [name, level] of Object.entries(options.loggers)) {\n manager.setLoggerLevel(name, level);\n }\n }\n\n if (options.transports) {\n // Clear existing transports and add new ones\n manager.setTransports(options.transports);\n }\n\n if (options.serviceName) {\n // Update service name\n manager.setServiceName(options.serviceName);\n }\n}\n\n/**\n * Shuts down the global LoggingManager by closing all transports.\n */\nexport async function shutdown(): Promise<void> {\n const manager = getManager();\n await manager.closeAll();\n}\n"],"mappings":"AAAA,SAAmB,cAAc,qBAAqB;AAEtD,SAAS,wBAAwB;AAEjC,MAAM,iBAAiB,uBAAO,IAAI,eAAe;AAa1C,MAAM,eAAe;AAAA,EAO1B,cAAc;AALd,SAAQ,aAA6B,CAAC;AAGtC,SAAQ,eAAsC,oBAAI,IAAI;AAGpD,UAAM,cACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,YAAY;AAC5D,UAAM,iBACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,eAAe;AAC/D,UAAM,UACJ,OAAO,YAAY,cAAc,QAAQ,KAAK,WAAW;AAE3D,SAAK,QAAQ,cAAc,WAAW;AACtC,SAAK,UAAU,kBAAkB;AACjC,SAAK,cAAc,WAAW;AAAA,EAChC;AAAA,EAEA,WAAqB;AACnB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,eAAe,MAAc,OAAuB;AAClD,SAAK,aAAa,IAAI,MAAM,KAAK;AAAA,EACnC;AAAA,EAEA,UAAU,OAAiB,YAA8B;AACvD,QAAI,YAAY;AACd,YAAM,cAAc,KAAK,aAAa,IAAI,UAAU;AACpD,UAAI,gBAAgB,QAAW;AAC7B,eAAO,SAAS;AAAA,MAClB;AAAA,IACF;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,aAAa,WAA+B;AAC1C,SAAK,WAAW,KAAK,SAAS;AAAA,EAChC;AAAA,EAEA,cAAc,YAAkC;AAC9C,SAAK,aAAa,CAAC,GAAG,UAAU;AAAA,EAClC;AAAA,EAEA,kBAAwB;AACtB,SAAK,aAAa,CAAC;AAAA,EACrB;AAAA,EAEA,eAAe,MAAoB;AACjC,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,OAAwD;AAC1D,UAAM,YAAsB;AAAA,MAC1B,GAAG;AAAA,MACH,aAAa,KAAK;AAAA,MAClB,SAAS,KAAK;AAAA,IAChB;AAEA,eAAW,aAAa,KAAK,YAAY;AACvC,gBAAU,IAAI,SAAS;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,MAAM,WAA0B;AAC9B,eAAW,aAAa,KAAK,YAAY;AACvC,UAAI,UAAU,OAAO;AACnB,cAAM,UAAU,MAAM;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,cAAc,OAAiB,MAAc,SAAyB;AACpE,UAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AACzC,WAAO,IAAI,SAAS,MAAM,IAAI,MAAM,aAAa,KAAK,CAAC,KAAK,OAAO;AAAA,EACrE;AACF;AAMO,SAAS,aAA6B;AAC3C,QAAM,SAAS;AAEf,MAAI,CAAC,OAAO,cAAc,GAAG;AAC3B,UAAM,UAAU,IAAI,eAAe;AAGnC,YAAQ,aAAa,IAAI,iBAAiB,CAAC;AAE3C,WAAO,cAAc,IAAI;AAAA,EAC3B;AAEA,SAAO,OAAO,cAAc;AAC9B;AAMO,SAAS,iBAAiB,SAAwC;AACvE,QAAM,UAAU,WAAW;AAE3B,MAAI,QAAQ,UAAU,QAAW;AAC/B,YAAQ,SAAS,QAAQ,KAAK;AAAA,EAChC;AAEA,MAAI,QAAQ,SAAS;AACnB,eAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,QAAQ,OAAO,GAAG;AAC3D,cAAQ,eAAe,MAAM,KAAK;AAAA,IACpC;AAAA,EACF;AAEA,MAAI,QAAQ,YAAY;AAEtB,YAAQ,cAAc,QAAQ,UAAU;AAAA,EAC1C;AAEA,MAAI,QAAQ,aAAa;AAEvB,YAAQ,eAAe,QAAQ,WAAW;AAAA,EAC5C;AACF;AAKA,eAAsB,WAA0B;AAC9C,QAAM,UAAU,WAAW;AAC3B,QAAM,QAAQ,SAAS;AACzB;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var get_logger_exports = {};
|
|
20
|
+
__export(get_logger_exports, {
|
|
21
|
+
getLogger: () => getLogger
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(get_logger_exports);
|
|
24
|
+
var import_abstract_logger = require("./core/abstract_logger.cjs");
|
|
25
|
+
var import_logging_manager = require("./core/logging_manager.cjs");
|
|
26
|
+
function getLogger(name) {
|
|
27
|
+
return new import_abstract_logger.NamedLogger(name, (0, import_logging_manager.getManager)());
|
|
28
|
+
}
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
getLogger
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=get_logger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/get_logger.ts"],"sourcesContent":["import { Logger, NamedLogger } from \"./core/abstract_logger.cjs\";\nimport { getManager } from \"./core/logging_manager.cjs\";\n\n/**\n * Creates a new logger with the specified name.\n * Uses the global LoggingManager singleton.\n *\n * @param name - The name of the logger (used in log output)\n * @returns A Logger instance that can log messages\n *\n * @example\n * const logger = getLogger('forge');\n * logger.info('Server started');\n *\n * const routingLogger = logger.named('routing');\n * routingLogger.debug('Route matched');\n *\n * const contextLogger = logger.withContext({ requestId: 'abc' });\n * contextLogger.info('Processing request'); // includes requestId in context\n */\nexport function getLogger(name: string): Logger {\n return new NamedLogger(name, getManager());\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAoC;AACpC,6BAA2B;AAmBpB,SAAS,UAAU,MAAsB;AAC9C,SAAO,IAAI,mCAAY,UAAM,mCAAW,CAAC;AAC3C;","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Logger } from './core/abstract_logger.cjs';
|
|
2
|
+
import './core/logging_manager.cjs';
|
|
3
|
+
import './core/log_level.cjs';
|
|
4
|
+
import './core/log_transport.cjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new logger with the specified name.
|
|
8
|
+
* Uses the global LoggingManager singleton.
|
|
9
|
+
*
|
|
10
|
+
* @param name - The name of the logger (used in log output)
|
|
11
|
+
* @returns A Logger instance that can log messages
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const logger = getLogger('forge');
|
|
15
|
+
* logger.info('Server started');
|
|
16
|
+
*
|
|
17
|
+
* const routingLogger = logger.named('routing');
|
|
18
|
+
* routingLogger.debug('Route matched');
|
|
19
|
+
*
|
|
20
|
+
* const contextLogger = logger.withContext({ requestId: 'abc' });
|
|
21
|
+
* contextLogger.info('Processing request'); // includes requestId in context
|
|
22
|
+
*/
|
|
23
|
+
declare function getLogger(name: string): Logger;
|
|
24
|
+
|
|
25
|
+
export { getLogger };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Logger } from './core/abstract_logger.js';
|
|
2
|
+
import './core/logging_manager.js';
|
|
3
|
+
import './core/log_level.js';
|
|
4
|
+
import './core/log_transport.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new logger with the specified name.
|
|
8
|
+
* Uses the global LoggingManager singleton.
|
|
9
|
+
*
|
|
10
|
+
* @param name - The name of the logger (used in log output)
|
|
11
|
+
* @returns A Logger instance that can log messages
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const logger = getLogger('forge');
|
|
15
|
+
* logger.info('Server started');
|
|
16
|
+
*
|
|
17
|
+
* const routingLogger = logger.named('routing');
|
|
18
|
+
* routingLogger.debug('Route matched');
|
|
19
|
+
*
|
|
20
|
+
* const contextLogger = logger.withContext({ requestId: 'abc' });
|
|
21
|
+
* contextLogger.info('Processing request'); // includes requestId in context
|
|
22
|
+
*/
|
|
23
|
+
declare function getLogger(name: string): Logger;
|
|
24
|
+
|
|
25
|
+
export { getLogger };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/get_logger.ts"],"sourcesContent":["import { Logger, NamedLogger } from \"./core/abstract_logger.js\";\nimport { getManager } from \"./core/logging_manager.js\";\n\n/**\n * Creates a new logger with the specified name.\n * Uses the global LoggingManager singleton.\n *\n * @param name - The name of the logger (used in log output)\n * @returns A Logger instance that can log messages\n *\n * @example\n * const logger = getLogger('forge');\n * logger.info('Server started');\n *\n * const routingLogger = logger.named('routing');\n * routingLogger.debug('Route matched');\n *\n * const contextLogger = logger.withContext({ requestId: 'abc' });\n * contextLogger.info('Processing request'); // includes requestId in context\n */\nexport function getLogger(name: string): Logger {\n return new NamedLogger(name, getManager());\n}\n"],"mappings":"AAAA,SAAiB,mBAAmB;AACpC,SAAS,kBAAkB;AAmBpB,SAAS,UAAU,MAAsB;AAC9C,SAAO,IAAI,YAAY,MAAM,WAAW,CAAC;AAC3C;","names":[]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var index_exports = {};
|
|
20
|
+
__export(index_exports, {
|
|
21
|
+
ConsoleTransport: () => import_console_transport.ConsoleTransport,
|
|
22
|
+
LogLevel: () => import_log_level.LogLevel,
|
|
23
|
+
LoggingManager: () => import_logging_manager.LoggingManager,
|
|
24
|
+
configureLogging: () => import_logging_manager.configureLogging,
|
|
25
|
+
getLogger: () => import_get_logger.getLogger,
|
|
26
|
+
getManager: () => import_logging_manager.getManager,
|
|
27
|
+
logLevelName: () => import_log_level.logLevelName,
|
|
28
|
+
parseLogLevel: () => import_log_level.parseLogLevel,
|
|
29
|
+
shutdown: () => import_logging_manager.shutdown
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(index_exports);
|
|
32
|
+
var import_log_level = require("./core/log_level.cjs");
|
|
33
|
+
var import_get_logger = require("./get_logger.cjs");
|
|
34
|
+
var import_logging_manager = require("./core/logging_manager.cjs");
|
|
35
|
+
var import_console_transport = require("./transports/console_transport.cjs");
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
ConsoleTransport,
|
|
39
|
+
LogLevel,
|
|
40
|
+
LoggingManager,
|
|
41
|
+
configureLogging,
|
|
42
|
+
getLogger,
|
|
43
|
+
getManager,
|
|
44
|
+
logLevelName,
|
|
45
|
+
parseLogLevel,
|
|
46
|
+
shutdown
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { LogLevel, parseLogLevel, logLevelName } from './core/log_level.cjs';\nexport type { LogEntry, LogTransport } from './core/log_transport.cjs';\nexport type { Logger } from './core/abstract_logger.cjs';\nexport { getLogger } from './get_logger.cjs';\nexport { getManager, configureLogging, shutdown, LoggingManager } from './core/logging_manager.cjs';\nexport type { ConfigureLoggingOptions } from './core/logging_manager.cjs';\nexport { ConsoleTransport } from './transports/console_transport.cjs';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsD;AAGtD,wBAA0B;AAC1B,6BAAuE;AAEvE,+BAAiC;","names":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LogLevel, logLevelName, parseLogLevel } from './core/log_level.cjs';
|
|
2
|
+
export { LogEntry, LogTransport } from './core/log_transport.cjs';
|
|
3
|
+
export { Logger } from './core/abstract_logger.cjs';
|
|
4
|
+
export { getLogger } from './get_logger.cjs';
|
|
5
|
+
export { ConfigureLoggingOptions, LoggingManager, configureLogging, getManager, shutdown } from './core/logging_manager.cjs';
|
|
6
|
+
export { ConsoleTransport } from './transports/console_transport.cjs';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LogLevel, logLevelName, parseLogLevel } from './core/log_level.js';
|
|
2
|
+
export { LogEntry, LogTransport } from './core/log_transport.js';
|
|
3
|
+
export { Logger } from './core/abstract_logger.js';
|
|
4
|
+
export { getLogger } from './get_logger.js';
|
|
5
|
+
export { ConfigureLoggingOptions, LoggingManager, configureLogging, getManager, shutdown } from './core/logging_manager.js';
|
|
6
|
+
export { ConsoleTransport } from './transports/console_transport.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LogLevel, parseLogLevel, logLevelName } from "./core/log_level.js";
|
|
2
|
+
import { getLogger } from "./get_logger.js";
|
|
3
|
+
import { getManager, configureLogging, shutdown, LoggingManager } from "./core/logging_manager.js";
|
|
4
|
+
import { ConsoleTransport } from "./transports/console_transport.js";
|
|
5
|
+
export {
|
|
6
|
+
ConsoleTransport,
|
|
7
|
+
LogLevel,
|
|
8
|
+
LoggingManager,
|
|
9
|
+
configureLogging,
|
|
10
|
+
getLogger,
|
|
11
|
+
getManager,
|
|
12
|
+
logLevelName,
|
|
13
|
+
parseLogLevel,
|
|
14
|
+
shutdown
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { LogLevel, parseLogLevel, logLevelName } from './core/log_level.js';\nexport type { LogEntry, LogTransport } from './core/log_transport.js';\nexport type { Logger } from './core/abstract_logger.js';\nexport { getLogger } from './get_logger.js';\nexport { getManager, configureLogging, shutdown, LoggingManager } from './core/logging_manager.js';\nexport type { ConfigureLoggingOptions } from './core/logging_manager.js';\nexport { ConsoleTransport } from './transports/console_transport.js';\n"],"mappings":"AAAA,SAAS,UAAU,eAAe,oBAAoB;AAGtD,SAAS,iBAAiB;AAC1B,SAAS,YAAY,kBAAkB,UAAU,sBAAsB;AAEvE,SAAS,wBAAwB;","names":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var ioc_exports = {};
|
|
20
|
+
__export(ioc_exports, {
|
|
21
|
+
registerLoggerFactory: () => registerLoggerFactory
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(ioc_exports);
|
|
24
|
+
var import_ioc = require("@noego/ioc");
|
|
25
|
+
var import_get_logger = require("../get_logger.cjs");
|
|
26
|
+
function registerLoggerFactory(container, label, name, options) {
|
|
27
|
+
const { loadAs = import_ioc.LoadAs.Singleton } = options || {};
|
|
28
|
+
container.registerFunction(label, () => (0, import_get_logger.getLogger)(name), { loadAs });
|
|
29
|
+
}
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
registerLoggerFactory
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ioc/index.ts"],"sourcesContent":["import type { IContainer } from '@noego/ioc';\nimport { LoadAs } from '@noego/ioc';\nimport { getLogger } from '../get_logger.cjs';\n\n/**\n * Registers a logger factory function in the IoC container.\n *\n * The registered factory creates a logger with the specified name using the global LoggingManager.\n * This ensures all loggers share the same configuration and transports.\n *\n * @param container - The IoC container to register the logger factory in\n * @param label - The label (string or symbol) to register the logger under\n * @param name - The name of the logger (used in log output)\n * @param options - Optional configuration\n * @param options.loadAs - How to load the logger (defaults to LoadAs.Singleton)\n *\n * @example\n * ```typescript\n * import { createContainer, LoadAs } from '@noego/ioc';\n * import { registerLoggerFactory } from '@noego/logger/ioc';\n *\n * const container = createContainer();\n *\n * // Register as singleton (default)\n * registerLoggerFactory(container, Symbol.for('@noego/dinner:logger'), 'dinner');\n *\n * // Register as transient\n * registerLoggerFactory(container, 'myLogger', 'app', { loadAs: LoadAs.Transient });\n *\n * // Use the logger\n * const logger = container.get(Symbol.for('@noego/dinner:logger'));\n * logger.info('Application started');\n * ```\n */\nexport function registerLoggerFactory(\n container: IContainer,\n label: string | symbol,\n name: string,\n options?: { loadAs?: LoadAs }\n): void {\n const { loadAs = LoadAs.Singleton } = options || {};\n container.registerFunction(label, () => getLogger(name), { loadAs });\n}\n\n/**\n * Logger interface for type annotations and dependency injection.\n *\n * @example\n * ```typescript\n * import { Inject } from '@noego/ioc';\n * import type { Logger } from '@noego/logger/ioc';\n *\n * class MyService {\n * constructor(\n * @Inject(Symbol.for('@noego/dinner:logger')) private logger: Logger\n * ) {}\n *\n * doSomething() {\n * this.logger.info('Doing something');\n * }\n * }\n * ```\n */\nexport type { Logger } from '../core/abstract_logger.cjs';\n\n/**\n * Re-export LoggingManager for advanced use cases.\n *\n * @example\n * ```typescript\n * import type { LoggingManager } from '@noego/logger/ioc';\n *\n * // Use for custom integrations or testing\n * ```\n */\nexport type { LoggingManager } from '../core/logging_manager.cjs';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAuB;AACvB,wBAA0B;AAgCnB,SAAS,sBACd,WACA,OACA,MACA,SACM;AACN,QAAM,EAAE,SAAS,kBAAO,UAAU,IAAI,WAAW,CAAC;AAClD,YAAU,iBAAiB,OAAO,UAAM,6BAAU,IAAI,GAAG,EAAE,OAAO,CAAC;AACrE;","names":[]}
|