@nx-ddd/common 19.5.0 → 19.6.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.
|
@@ -50,9 +50,58 @@ function provideLogger(useFactory) {
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* LogFilter - Simple function-based log filtering
|
|
55
|
+
*/
|
|
56
|
+
const LOG_FILTER = new InjectionToken('LogFilter');
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Provider functions for log filtering
|
|
60
|
+
*/
|
|
61
|
+
/**
|
|
62
|
+
* Provide a log filter function
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* // Filter by log level
|
|
66
|
+
* provideLogFilter((level) => level >= LogLevel.WARN)
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Filter by component
|
|
70
|
+
* provideLogFilter((level, context) => context?.component?.startsWith('My'))
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // Allow all logs
|
|
74
|
+
* provideLogFilter(() => true)
|
|
75
|
+
*/
|
|
76
|
+
function provideLogFilter(filter) {
|
|
77
|
+
return { provide: LOG_FILTER, useValue: filter };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Provide a log filter based on environment variables
|
|
81
|
+
* - LOG_LEVEL: Minimum log level (DEBUG, INFO, WARN, ERROR)
|
|
82
|
+
* - LOG_COMPONENTS: Regex pattern for component names
|
|
83
|
+
*/
|
|
84
|
+
function provideLogFilterFromEnv() {
|
|
85
|
+
const minLevelStr = process.env['LOG_LEVEL']?.toUpperCase();
|
|
86
|
+
const minLevel = minLevelStr && minLevelStr in LogLevel
|
|
87
|
+
? LogLevel[minLevelStr]
|
|
88
|
+
: LogLevel.WARN;
|
|
89
|
+
const componentPattern = process.env['LOG_COMPONENTS'];
|
|
90
|
+
const componentRegex = componentPattern ? new RegExp(componentPattern) : null;
|
|
91
|
+
return provideLogFilter((level, context) => {
|
|
92
|
+
if (level < minLevel)
|
|
93
|
+
return false;
|
|
94
|
+
if (componentRegex && context?.component && !componentRegex.test(context.component)) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
53
101
|
const LOGGING_SERVICE = new InjectionToken('LoggingService');
|
|
54
102
|
class LoggingService {
|
|
55
103
|
loggers = inject(LOGGER, { optional: true }) ?? [];
|
|
104
|
+
filter = inject(LOG_FILTER, { optional: true });
|
|
56
105
|
getLogger(name) {
|
|
57
106
|
const format = (...args) => {
|
|
58
107
|
return args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg, null, 2)).join(' ');
|
|
@@ -66,6 +115,9 @@ class LoggingService {
|
|
|
66
115
|
};
|
|
67
116
|
}
|
|
68
117
|
log(level, message, context, error) {
|
|
118
|
+
// Apply filtering at service level if LogFilter is provided
|
|
119
|
+
if (this.filter && !this.filter(level, context))
|
|
120
|
+
return;
|
|
69
121
|
this.loggers.forEach(logger => logger.log(level, message, context, error));
|
|
70
122
|
}
|
|
71
123
|
close() {
|
|
@@ -125,5 +177,5 @@ function provideGlobalLogging() {
|
|
|
125
177
|
* Generated bundle index. Do not edit.
|
|
126
178
|
*/
|
|
127
179
|
|
|
128
|
-
export { BaseLogger, LOGGER, LOGGING_SERVICE, LogLevel, LoggingService, createLogger, getGlobalLogging, getLogger, globalLogging as logging, provideGlobalLogging, provideLogger, setGlobalLogging };
|
|
180
|
+
export { BaseLogger, LOGGER, LOGGING_SERVICE, LOG_FILTER, LogLevel, LoggingService, createLogger, getGlobalLogging, getLogger, globalLogging as logging, provideGlobalLogging, provideLogFilter, provideLogFilterFromEnv, provideLogger, setGlobalLogging };
|
|
129
181
|
//# sourceMappingURL=nx-ddd-common-infrastructure-logging.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-common-infrastructure-logging.mjs","sources":["../tmp-esm2022/infrastructure/logging/base/interfaces.js","../tmp-esm2022/infrastructure/logging/base/base.logger.js","../tmp-esm2022/infrastructure/logging/logging.service.js","../tmp-esm2022/infrastructure/logging/global-logging.js","../tmp-esm2022/infrastructure/logging/nx-ddd-common-infrastructure-logging.js"],"sourcesContent":["/**\n * LoggingService interfaces\n *\n * Provides structured logging with different log levels and file output\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"INFO\"] = 1] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 2] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 3] = \"ERROR\";\n LogLevel[LogLevel[\"FATAL\"] = 4] = \"FATAL\";\n})(LogLevel || (LogLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbG9nZ2luZy9iYXNlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE1BQU0sQ0FBTixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIseUNBQVMsQ0FBQTtJQUNULHVDQUFRLENBQUE7SUFDUix1Q0FBUSxDQUFBO0lBQ1IseUNBQVMsQ0FBQTtJQUNULHlDQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsUUFBUSxLQUFSLFFBQVEsUUFNbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExvZ2dpbmdTZXJ2aWNlIGludGVyZmFjZXNcbiAqXG4gKiBQcm92aWRlcyBzdHJ1Y3R1cmVkIGxvZ2dpbmcgd2l0aCBkaWZmZXJlbnQgbG9nIGxldmVscyBhbmQgZmlsZSBvdXRwdXRcbiAqL1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIERFQlVHID0gMCxcbiAgSU5GTyA9IDEsXG4gIFdBUk4gPSAyLFxuICBFUlJPUiA9IDMsXG4gIEZBVEFMID0gNCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dDb250ZXh0IHtcbiAgY29tcG9uZW50Pzogc3RyaW5nO1xuICBzZXNzaW9uSWQ/OiBzdHJpbmc7XG4gIGNsaWVudElkPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2dpbmdTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIExvZyBkZWJ1ZyBtZXNzYWdlIChmb3IgZGV2ZWxvcG1lbnQvdHJvdWJsZXNob290aW5nKVxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VcbiAgICovXG4gIGluZm8obWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyB3YXJuaW5nIG1lc3NhZ2VcbiAgICovXG4gIHdhcm4obWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyBlcnJvciBtZXNzYWdlXG4gICAqL1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogRXJyb3IsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZDtcblxuICAvKipcbiAgICogTG9nIGZhdGFsIGVycm9yIG1lc3NhZ2UgKGFwcGxpY2F0aW9uIGNhbm5vdCBjb250aW51ZSlcbiAgICovXG4gIGZhdGFsKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXQgbG9nIGxldmVsIGZpbHRlclxuICAgKi9cbiAgc2V0TG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogdm9pZDtcblxuICAvKipcbiAgICogU2V0IGNvbXBvbmVudCBuYW1lIGZvciB0aGlzIGxvZ2dlclxuICAgKi9cbiAgc2V0Q29tcG9uZW50KGNvbXBvbmVudDogc3RyaW5nKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xvc2UgbG9nZ2VyIGFuZCBmbHVzaCBidWZmZXJzXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkO1xufVxuIl19","/**\n * Base Logger class for multi-provider logging system\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { LogLevel } from './interfaces';\nimport * as i0 from \"@angular/core\";\nexport const LOGGER = new InjectionToken('Logger');\nexport class BaseLogger {\n // Convenience methods\n debug(message, context) {\n this.log(LogLevel.DEBUG, message, context);\n }\n info(message, context) {\n this.log(LogLevel.INFO, message, context);\n }\n warn(message, context) {\n this.log(LogLevel.WARN, message, context);\n }\n error(message, error, context) {\n this.log(LogLevel.ERROR, message, context, error);\n }\n fatal(message, error, context) {\n this.log(LogLevel.FATAL, message, context, error);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger, decorators: [{\n type: Injectable\n }] });\nexport function provideLogger(useFactory) {\n return {\n provide: LOGGER,\n multi: true,\n useFactory,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2xvZ2dpbmcvYmFzZS9iYXNlLmxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxjQUFjLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBYSxRQUFRLENBQUMsQ0FBQztBQUcvRCxNQUFNLE9BQWdCLFVBQVU7SUFnQjlCLHNCQUFzQjtJQUN0QixLQUFLLENBQUMsT0FBZSxFQUFFLE9BQW9CO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsT0FBb0I7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxPQUFvQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFvQjtRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBb0I7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt1R0FuQ21CLFVBQVU7MkdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEL0IsVUFBVTs7QUF1Q1gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxVQUE0QjtJQUN4RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU07UUFDZixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZSBMb2dnZXIgY2xhc3MgZm9yIG11bHRpLXByb3ZpZGVyIGxvZ2dpbmcgc3lzdGVtXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dMZXZlbCwgTG9nQ29udGV4dCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBMT0dHRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmFzZUxvZ2dlcj4oJ0xvZ2dlcicpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUxvZ2dlciB7XG4gIC8qKlxuICAgKiBNYWluIGxvZyBtZXRob2QgdGhhdCBhbGwgbG9nZ2VycyBtdXN0IGltcGxlbWVudFxuICAgKi9cbiAgYWJzdHJhY3QgbG9nKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgY29udGV4dD86IExvZ0NvbnRleHQsXG4gICAgZXJyb3I/OiBFcnJvclxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDbG9zZSBsb2dnZXIgYW5kIGZsdXNoIGJ1ZmZlcnNcbiAgICovXG4gIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgLy8gQ29udmVuaWVuY2UgbWV0aG9kc1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIG1lc3NhZ2UsIGNvbnRleHQpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgbWVzc2FnZSwgY29udGV4dCk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5XQVJOLCBtZXNzYWdlLCBjb250ZXh0KTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5FUlJPUiwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICB9XG5cbiAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IEVycm9yLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkZBVEFMLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMb2dnZXIodXNlRmFjdG9yeTogKCkgPT4gQmFzZUxvZ2dlcik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBMT0dHRVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeSxcbiAgfTtcbn0iXX0=","import { inject, Injectable, InjectionToken } from \"@angular/core\";\nimport { LOGGER, LogLevel } from \"./base\";\nimport * as i0 from \"@angular/core\";\nexport const LOGGING_SERVICE = new InjectionToken('LoggingService');\nexport class LoggingService {\n loggers = inject(LOGGER, { optional: true }) ?? [];\n getLogger(name) {\n const format = (...args) => {\n return args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg, null, 2)).join(' ');\n };\n return {\n log: (...args) => this.log(LogLevel.DEBUG, format(`[${name}]`, ...args)),\n debug: (...args) => this.log(LogLevel.DEBUG, format(`[${name}]`, ...args)),\n info: (...args) => this.log(LogLevel.INFO, format(`[${name}]`, ...args)),\n warn: (...args) => this.log(LogLevel.WARN, format(`[${name}]`, ...args)),\n error: (...args) => this.log(LogLevel.ERROR, format(`[${name}]`, ...args)),\n };\n }\n log(level, message, context, error) {\n this.loggers.forEach(logger => logger.log(level, message, context, error));\n }\n close() {\n this.loggers.forEach(logger => logger.close());\n }\n debug(message, context) {\n this.log(LogLevel.DEBUG, message, context);\n }\n info(message, context) {\n this.log(LogLevel.INFO, message, context);\n }\n warn(message, context) {\n this.log(LogLevel.WARN, message, context);\n }\n error(message, error, context) {\n this.log(LogLevel.ERROR, message, context, error);\n }\n fatal(message, error, context) {\n this.log(LogLevel.FATAL, message, context, error);\n }\n setLogLevel(level) {\n // this.loggers.forEach(logger => logger.setLogLevel(level));\n }\n setComponent(component) {\n // this.loggers.forEach(logger => logger.setComponent(component));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUEyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUVuRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWtCLGdCQUFnQixDQUFDLENBQUM7QUFXckYsTUFBTSxPQUFPLGNBQWM7SUFDakIsT0FBTyxHQUFHLE1BQU0sQ0FBZSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFekUsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQXVDLEVBQUUsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pHLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDeEUsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN4RSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDeEUsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzNFLENBQUM7SUFDSixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWUsRUFBRSxPQUFlLEVBQUUsT0FBb0IsRUFBRSxLQUFhO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxPQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZSxFQUFFLE9BQW9CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsT0FBb0I7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBb0I7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQW9CO1FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZTtRQUN6Qiw2REFBNkQ7SUFDL0QsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixrRUFBa0U7SUFDcEUsQ0FBQzt1R0FuRFUsY0FBYzsyR0FBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlTG9nZ2VyLCBJTG9nZ2luZ1NlcnZpY2UsIExvZ0NvbnRleHQsIExPR0dFUiwgTG9nTGV2ZWwgfSBmcm9tIFwiLi9iYXNlXCI7XG5cbmV4cG9ydCBjb25zdCBMT0dHSU5HX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUxvZ2dpbmdTZXJ2aWNlPignTG9nZ2luZ1NlcnZpY2UnKTsgXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyIHtcbiAgbG9nOiAoLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY29uc29sZVsnbG9nJ10+KSA9PiB2b2lkO1xuICBkZWJ1ZzogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ2RlYnVnJ10+KSA9PiB2b2lkO1xuICBpbmZvOiAoLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY29uc29sZVsnaW5mbyddPikgPT4gdm9pZDtcbiAgd2FybjogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ3dhcm4nXT4pID0+IHZvaWQ7XG4gIGVycm9yOiAoLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY29uc29sZVsnZXJyb3InXT4pID0+IHZvaWQ7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9nZ2luZ1NlcnZpY2UgaW1wbGVtZW50cyBJTG9nZ2luZ1NlcnZpY2Uge1xuICBwcml2YXRlIGxvZ2dlcnMgPSBpbmplY3Q8QmFzZUxvZ2dlcltdPihMT0dHRVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgZ2V0TG9nZ2VyKG5hbWU6IHN0cmluZyk6IExvZ2dlciB7XG4gICAgY29uc3QgZm9ybWF0ID0gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ2xvZyddPikgPT4ge1xuICAgICAgcmV0dXJuIGFyZ3MubWFwKGFyZyA9PiB0eXBlb2YgYXJnID09PSAnc3RyaW5nJyA/IGFyZyA6IEpTT04uc3RyaW5naWZ5KGFyZywgbnVsbCwgMikpLmpvaW4oJyAnKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZzogKC4uLmFyZ3MpID0+IHRoaXMubG9nKExvZ0xldmVsLkRFQlVHLCBmb3JtYXQoYFske25hbWV9XWAsIC4uLmFyZ3MpKSxcbiAgICAgIGRlYnVnOiAoLi4uYXJncykgPT4gdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIGZvcm1hdChgWyR7bmFtZX1dYCwgLi4uYXJncykpLFxuICAgICAgaW5mbzogKC4uLmFyZ3MpID0+IHRoaXMubG9nKExvZ0xldmVsLklORk8sIGZvcm1hdChgWyR7bmFtZX1dYCwgLi4uYXJncykpLFxuICAgICAgd2FybjogKC4uLmFyZ3MpID0+IHRoaXMubG9nKExvZ0xldmVsLldBUk4sIGZvcm1hdChgWyR7bmFtZX1dYCwgLi4uYXJncykpLFxuICAgICAgZXJyb3I6ICguLi5hcmdzKSA9PiB0aGlzLmxvZyhMb2dMZXZlbC5FUlJPUiwgZm9ybWF0KGBbJHtuYW1lfV1gLCAuLi5hcmdzKSksXG4gICAgfTtcbiAgfVxuXG4gIGxvZyhsZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZywgY29udGV4dD86IExvZ0NvbnRleHQsIGVycm9yPzogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLmxvZyhsZXZlbCwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpKTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubG9nZ2Vycy5mb3JFYWNoKGxvZ2dlciA9PiBsb2dnZXIuY2xvc2UoKSk7XG4gIH1cblxuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIG1lc3NhZ2UsIGNvbnRleHQpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgbWVzc2FnZSwgY29udGV4dCk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5XQVJOLCBtZXNzYWdlLCBjb250ZXh0KTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5FUlJPUiwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICB9XG5cbiAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IEVycm9yLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkZBVEFMLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvcik7XG4gIH1cblxuICBzZXRMb2dMZXZlbChsZXZlbDogTG9nTGV2ZWwpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLnNldExvZ0xldmVsKGxldmVsKSk7XG4gIH1cblxuICBzZXRDb21wb25lbnQoY29tcG9uZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLnNldENvbXBvbmVudChjb21wb25lbnQpKTtcbiAgfSBcbn0iXX0=","import { inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport { LoggingService } from './logging.service';\nlet globalLogging = null;\nexport { globalLogging as logging };\nexport function setGlobalLogging(logging) {\n globalLogging = logging;\n}\nexport function getGlobalLogging() {\n return globalLogging;\n}\nexport function createLogger(name) {\n return globalLogging;\n}\nexport function getLogger(name) {\n return globalLogging?.getLogger(name);\n}\nexport function provideGlobalLogging() {\n return makeEnvironmentProviders([\n provideAppInitializer(() => {\n return setGlobalLogging(inject(LoggingService));\n })\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWxvZ2dpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2xvZ2dpbmcvZ2xvYmFsLWxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFVLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNELElBQUksYUFBYSxHQUEwQixJQUFJLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUVwQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBdUI7SUFDdEQsYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFTO0lBQ3BDLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVk7SUFDcEMsT0FBTyxhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgcHJvdmlkZUFwcEluaXRpYWxpemVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTG9nZ2luZ1NlcnZpY2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgTG9nZ2VyLCBMb2dnaW5nU2VydmljZSB9IGZyb20gJy4vbG9nZ2luZy5zZXJ2aWNlJztcblxubGV0IGdsb2JhbExvZ2dpbmc6IExvZ2dpbmdTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5leHBvcnQgeyBnbG9iYWxMb2dnaW5nIGFzIGxvZ2dpbmcgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldEdsb2JhbExvZ2dpbmcobG9nZ2luZzogTG9nZ2luZ1NlcnZpY2UpOiB2b2lkIHtcbiAgZ2xvYmFsTG9nZ2luZyA9IGxvZ2dpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWxMb2dnaW5nKCk6IExvZ2dpbmdTZXJ2aWNlIHwgbnVsbCB7XG4gIHJldHVybiBnbG9iYWxMb2dnaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKG5hbWU6IGFueSk6IElMb2dnaW5nU2VydmljZSB7XG4gIHJldHVybiBnbG9iYWxMb2dnaW5nO1xufSBcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlcihuYW1lOiBzdHJpbmcpOiBMb2dnZXIge1xuICByZXR1cm4gZ2xvYmFsTG9nZ2luZz8uZ2V0TG9nZ2VyKG5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUdsb2JhbExvZ2dpbmcoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlQXBwSW5pdGlhbGl6ZXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHNldEdsb2JhbExvZ2dpbmcoaW5qZWN0KExvZ2dpbmdTZXJ2aWNlKSk7XG4gICAgfSlcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWNvbW1vbi1pbmZyYXN0cnVjdHVyZS1sb2dnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9sb2dnaW5nL254LWRkZC1jb21tb24taW5mcmFzdHJ1Y3R1cmUtbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-logging.mjs","sources":["../tmp-esm2022/infrastructure/logging/base/interfaces.js","../tmp-esm2022/infrastructure/logging/base/base.logger.js","../tmp-esm2022/infrastructure/logging/base/log-filter.js","../tmp-esm2022/infrastructure/logging/base/providers.js","../tmp-esm2022/infrastructure/logging/logging.service.js","../tmp-esm2022/infrastructure/logging/global-logging.js","../tmp-esm2022/infrastructure/logging/nx-ddd-common-infrastructure-logging.js"],"sourcesContent":["/**\n * LoggingService interfaces\n *\n * Provides structured logging with different log levels and file output\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"INFO\"] = 1] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 2] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 3] = \"ERROR\";\n LogLevel[LogLevel[\"FATAL\"] = 4] = \"FATAL\";\n})(LogLevel || (LogLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbG9nZ2luZy9iYXNlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE1BQU0sQ0FBTixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIseUNBQVMsQ0FBQTtJQUNULHVDQUFRLENBQUE7SUFDUix1Q0FBUSxDQUFBO0lBQ1IseUNBQVMsQ0FBQTtJQUNULHlDQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsUUFBUSxLQUFSLFFBQVEsUUFNbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExvZ2dpbmdTZXJ2aWNlIGludGVyZmFjZXNcbiAqXG4gKiBQcm92aWRlcyBzdHJ1Y3R1cmVkIGxvZ2dpbmcgd2l0aCBkaWZmZXJlbnQgbG9nIGxldmVscyBhbmQgZmlsZSBvdXRwdXRcbiAqL1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIERFQlVHID0gMCxcbiAgSU5GTyA9IDEsXG4gIFdBUk4gPSAyLFxuICBFUlJPUiA9IDMsXG4gIEZBVEFMID0gNCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dDb250ZXh0IHtcbiAgY29tcG9uZW50Pzogc3RyaW5nO1xuICBzZXNzaW9uSWQ/OiBzdHJpbmc7XG4gIGNsaWVudElkPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2dpbmdTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIExvZyBkZWJ1ZyBtZXNzYWdlIChmb3IgZGV2ZWxvcG1lbnQvdHJvdWJsZXNob290aW5nKVxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VcbiAgICovXG4gIGluZm8obWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyB3YXJuaW5nIG1lc3NhZ2VcbiAgICovXG4gIHdhcm4obWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvZyBlcnJvciBtZXNzYWdlXG4gICAqL1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogRXJyb3IsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZDtcblxuICAvKipcbiAgICogTG9nIGZhdGFsIGVycm9yIG1lc3NhZ2UgKGFwcGxpY2F0aW9uIGNhbm5vdCBjb250aW51ZSlcbiAgICovXG4gIGZhdGFsKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXQgbG9nIGxldmVsIGZpbHRlclxuICAgKi9cbiAgc2V0TG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogdm9pZDtcblxuICAvKipcbiAgICogU2V0IGNvbXBvbmVudCBuYW1lIGZvciB0aGlzIGxvZ2dlclxuICAgKi9cbiAgc2V0Q29tcG9uZW50KGNvbXBvbmVudDogc3RyaW5nKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xvc2UgbG9nZ2VyIGFuZCBmbHVzaCBidWZmZXJzXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkO1xufVxuIl19","/**\n * Base Logger class for multi-provider logging system\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { LogLevel } from './interfaces';\nimport * as i0 from \"@angular/core\";\nexport const LOGGER = new InjectionToken('Logger');\nexport class BaseLogger {\n // Convenience methods\n debug(message, context) {\n this.log(LogLevel.DEBUG, message, context);\n }\n info(message, context) {\n this.log(LogLevel.INFO, message, context);\n }\n warn(message, context) {\n this.log(LogLevel.WARN, message, context);\n }\n error(message, error, context) {\n this.log(LogLevel.ERROR, message, context, error);\n }\n fatal(message, error, context) {\n this.log(LogLevel.FATAL, message, context, error);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: BaseLogger, decorators: [{\n type: Injectable\n }] });\nexport function provideLogger(useFactory) {\n return {\n provide: LOGGER,\n multi: true,\n useFactory,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2xvZ2dpbmcvYmFzZS9iYXNlLmxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxjQUFjLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBYSxRQUFRLENBQUMsQ0FBQztBQUcvRCxNQUFNLE9BQWdCLFVBQVU7SUFnQjlCLHNCQUFzQjtJQUN0QixLQUFLLENBQUMsT0FBZSxFQUFFLE9BQW9CO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsT0FBb0I7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxPQUFvQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFvQjtRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBb0I7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt1R0FuQ21CLFVBQVU7MkdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEL0IsVUFBVTs7QUF1Q1gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxVQUE0QjtJQUN4RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU07UUFDZixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZSBMb2dnZXIgY2xhc3MgZm9yIG11bHRpLXByb3ZpZGVyIGxvZ2dpbmcgc3lzdGVtXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dMZXZlbCwgTG9nQ29udGV4dCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBMT0dHRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmFzZUxvZ2dlcj4oJ0xvZ2dlcicpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUxvZ2dlciB7XG4gIC8qKlxuICAgKiBNYWluIGxvZyBtZXRob2QgdGhhdCBhbGwgbG9nZ2VycyBtdXN0IGltcGxlbWVudFxuICAgKi9cbiAgYWJzdHJhY3QgbG9nKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgY29udGV4dD86IExvZ0NvbnRleHQsXG4gICAgZXJyb3I/OiBFcnJvclxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDbG9zZSBsb2dnZXIgYW5kIGZsdXNoIGJ1ZmZlcnNcbiAgICovXG4gIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgLy8gQ29udmVuaWVuY2UgbWV0aG9kc1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIG1lc3NhZ2UsIGNvbnRleHQpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgbWVzc2FnZSwgY29udGV4dCk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5XQVJOLCBtZXNzYWdlLCBjb250ZXh0KTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5FUlJPUiwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICB9XG5cbiAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IEVycm9yLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkZBVEFMLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMb2dnZXIodXNlRmFjdG9yeTogKCkgPT4gQmFzZUxvZ2dlcik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBMT0dHRVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeSxcbiAgfTtcbn0iXX0=","/**\n * LogFilter - Simple function-based log filtering\n */\nimport { InjectionToken } from '@angular/core';\nexport const LOG_FILTER = new InjectionToken('LogFilter');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbG9nZ2luZy9iYXNlL2xvZy1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVy9DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBYyxXQUFXLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9nRmlsdGVyIC0gU2ltcGxlIGZ1bmN0aW9uLWJhc2VkIGxvZyBmaWx0ZXJpbmdcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nTGV2ZWwsIExvZ0NvbnRleHQgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIExvZyBmaWx0ZXIgZnVuY3Rpb24gdHlwZVxuICogQHBhcmFtIGxldmVsIC0gVGhlIGxvZyBsZXZlbFxuICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCBsb2cgY29udGV4dCAoY29tcG9uZW50IG5hbWUsIGV0Yy4pXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBsb2cgc2hvdWxkIGJlIG91dHB1dCwgZmFsc2UgdG8gc3VwcHJlc3NcbiAqL1xuZXhwb3J0IHR5cGUgTG9nRmlsdGVyRm4gPSAobGV2ZWw6IExvZ0xldmVsLCBjb250ZXh0PzogTG9nQ29udGV4dCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGNvbnN0IExPR19GSUxURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nRmlsdGVyRm4+KCdMb2dGaWx0ZXInKTtcbiJdfQ==","/**\n * Provider functions for log filtering\n */\nimport { LogLevel } from './interfaces';\nimport { LOG_FILTER } from './log-filter';\n/**\n * Provide a log filter function\n *\n * @example\n * // Filter by log level\n * provideLogFilter((level) => level >= LogLevel.WARN)\n *\n * @example\n * // Filter by component\n * provideLogFilter((level, context) => context?.component?.startsWith('My'))\n *\n * @example\n * // Allow all logs\n * provideLogFilter(() => true)\n */\nexport function provideLogFilter(filter) {\n return { provide: LOG_FILTER, useValue: filter };\n}\n/**\n * Provide a log filter based on environment variables\n * - LOG_LEVEL: Minimum log level (DEBUG, INFO, WARN, ERROR)\n * - LOG_COMPONENTS: Regex pattern for component names\n */\nexport function provideLogFilterFromEnv() {\n const minLevelStr = process.env['LOG_LEVEL']?.toUpperCase();\n const minLevel = minLevelStr && minLevelStr in LogLevel\n ? LogLevel[minLevelStr]\n : LogLevel.WARN;\n const componentPattern = process.env['LOG_COMPONENTS'];\n const componentRegex = componentPattern ? new RegExp(componentPattern) : null;\n return provideLogFilter((level, context) => {\n if (level < minLevel)\n return false;\n if (componentRegex && context?.component && !componentRegex.test(context.component)) {\n return false;\n }\n return true;\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9sb2dnaW5nL2Jhc2UvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sY0FBYyxDQUFDO0FBRXZEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQW1CO0lBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNuRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM1RCxNQUFNLFFBQVEsR0FBRyxXQUFXLElBQUksV0FBVyxJQUFJLFFBQVE7UUFDckQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFvQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBRWxCLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFOUUsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN6QyxJQUFJLEtBQUssR0FBRyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsSUFBSSxjQUFjLElBQUksT0FBTyxFQUFFLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEYsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVyIGZ1bmN0aW9ucyBmb3IgbG9nIGZpbHRlcmluZ1xuICovXG5cbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMT0dfRklMVEVSLCBMb2dGaWx0ZXJGbiB9IGZyb20gJy4vbG9nLWZpbHRlcic7XG5cbi8qKlxuICogUHJvdmlkZSBhIGxvZyBmaWx0ZXIgZnVuY3Rpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmlsdGVyIGJ5IGxvZyBsZXZlbFxuICogcHJvdmlkZUxvZ0ZpbHRlcigobGV2ZWwpID0+IGxldmVsID49IExvZ0xldmVsLldBUk4pXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZpbHRlciBieSBjb21wb25lbnRcbiAqIHByb3ZpZGVMb2dGaWx0ZXIoKGxldmVsLCBjb250ZXh0KSA9PiBjb250ZXh0Py5jb21wb25lbnQ/LnN0YXJ0c1dpdGgoJ015JykpXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFsbG93IGFsbCBsb2dzXG4gKiBwcm92aWRlTG9nRmlsdGVyKCgpID0+IHRydWUpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTG9nRmlsdGVyKGZpbHRlcjogTG9nRmlsdGVyRm4pOiBQcm92aWRlciB7XG4gIHJldHVybiB7IHByb3ZpZGU6IExPR19GSUxURVIsIHVzZVZhbHVlOiBmaWx0ZXIgfTtcbn1cblxuLyoqXG4gKiBQcm92aWRlIGEgbG9nIGZpbHRlciBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqIC0gTE9HX0xFVkVMOiBNaW5pbXVtIGxvZyBsZXZlbCAoREVCVUcsIElORk8sIFdBUk4sIEVSUk9SKVxuICogLSBMT0dfQ09NUE9ORU5UUzogUmVnZXggcGF0dGVybiBmb3IgY29tcG9uZW50IG5hbWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTG9nRmlsdGVyRnJvbUVudigpOiBQcm92aWRlciB7XG4gIGNvbnN0IG1pbkxldmVsU3RyID0gcHJvY2Vzcy5lbnZbJ0xPR19MRVZFTCddPy50b1VwcGVyQ2FzZSgpO1xuICBjb25zdCBtaW5MZXZlbCA9IG1pbkxldmVsU3RyICYmIG1pbkxldmVsU3RyIGluIExvZ0xldmVsXG4gICAgPyBMb2dMZXZlbFttaW5MZXZlbFN0ciBhcyBrZXlvZiB0eXBlb2YgTG9nTGV2ZWxdXG4gICAgOiBMb2dMZXZlbC5XQVJOO1xuXG4gIGNvbnN0IGNvbXBvbmVudFBhdHRlcm4gPSBwcm9jZXNzLmVudlsnTE9HX0NPTVBPTkVOVFMnXTtcbiAgY29uc3QgY29tcG9uZW50UmVnZXggPSBjb21wb25lbnRQYXR0ZXJuID8gbmV3IFJlZ0V4cChjb21wb25lbnRQYXR0ZXJuKSA6IG51bGw7XG5cbiAgcmV0dXJuIHByb3ZpZGVMb2dGaWx0ZXIoKGxldmVsLCBjb250ZXh0KSA9PiB7XG4gICAgaWYgKGxldmVsIDwgbWluTGV2ZWwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoY29tcG9uZW50UmVnZXggJiYgY29udGV4dD8uY29tcG9uZW50ICYmICFjb21wb25lbnRSZWdleC50ZXN0KGNvbnRleHQuY29tcG9uZW50KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG59XG4iXX0=","import { inject, Injectable, InjectionToken } from \"@angular/core\";\nimport { LOGGER, LogLevel, LOG_FILTER } from \"./base\";\nimport * as i0 from \"@angular/core\";\nexport const LOGGING_SERVICE = new InjectionToken('LoggingService');\nexport class LoggingService {\n loggers = inject(LOGGER, { optional: true }) ?? [];\n filter = inject(LOG_FILTER, { optional: true });\n getLogger(name) {\n const format = (...args) => {\n return args.map(arg => typeof arg === 'string' ? arg : JSON.stringify(arg, null, 2)).join(' ');\n };\n return {\n log: (...args) => this.log(LogLevel.DEBUG, format(`[${name}]`, ...args)),\n debug: (...args) => this.log(LogLevel.DEBUG, format(`[${name}]`, ...args)),\n info: (...args) => this.log(LogLevel.INFO, format(`[${name}]`, ...args)),\n warn: (...args) => this.log(LogLevel.WARN, format(`[${name}]`, ...args)),\n error: (...args) => this.log(LogLevel.ERROR, format(`[${name}]`, ...args)),\n };\n }\n log(level, message, context, error) {\n // Apply filtering at service level if LogFilter is provided\n if (this.filter && !this.filter(level, context))\n return;\n this.loggers.forEach(logger => logger.log(level, message, context, error));\n }\n close() {\n this.loggers.forEach(logger => logger.close());\n }\n debug(message, context) {\n this.log(LogLevel.DEBUG, message, context);\n }\n info(message, context) {\n this.log(LogLevel.INFO, message, context);\n }\n warn(message, context) {\n this.log(LogLevel.WARN, message, context);\n }\n error(message, error, context) {\n this.log(LogLevel.ERROR, message, context, error);\n }\n fatal(message, error, context) {\n this.log(LogLevel.FATAL, message, context, error);\n }\n setLogLevel(level) {\n // this.loggers.forEach(logger => logger.setLogLevel(level));\n }\n setComponent(component) {\n // this.loggers.forEach(logger => logger.setComponent(component));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LoggingService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUEyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBZSxNQUFNLFFBQVEsQ0FBQzs7QUFFNUcsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFrQixnQkFBZ0IsQ0FBQyxDQUFDO0FBV3JGLE1BQU0sT0FBTyxjQUFjO0lBQ2pCLE9BQU8sR0FBRyxNQUFNLENBQWUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pFLE1BQU0sR0FBRyxNQUFNLENBQWMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFckUsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQXVDLEVBQUUsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pHLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxR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TUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlTG9nZ2VyLCBJTG9nZ2luZ1NlcnZpY2UsIExvZ0NvbnRleHQsIExPR0dFUiwgTG9nTGV2ZWwsIExPR19GSUxURVIsIExvZ0ZpbHRlckZuIH0gZnJvbSBcIi4vYmFzZVwiO1xuXG5leHBvcnQgY29uc3QgTE9HR0lOR19TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElMb2dnaW5nU2VydmljZT4oJ0xvZ2dpbmdTZXJ2aWNlJyk7IFxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIGxvZzogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ2xvZyddPikgPT4gdm9pZDtcbiAgZGVidWc6ICguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjb25zb2xlWydkZWJ1ZyddPikgPT4gdm9pZDtcbiAgaW5mbzogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ2luZm8nXT4pID0+IHZvaWQ7XG4gIHdhcm46ICguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjb25zb2xlWyd3YXJuJ10+KSA9PiB2b2lkO1xuICBlcnJvcjogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNvbnNvbGVbJ2Vycm9yJ10+KSA9PiB2b2lkO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvZ2dpbmdTZXJ2aWNlIGltcGxlbWVudHMgSUxvZ2dpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2dnZXJzID0gaW5qZWN0PEJhc2VMb2dnZXJbXT4oTE9HR0VSLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xuICBwcml2YXRlIGZpbHRlciA9IGluamVjdDxMb2dGaWx0ZXJGbj4oTE9HX0ZJTFRFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBnZXRMb2dnZXIobmFtZTogc3RyaW5nKTogTG9nZ2VyIHtcbiAgICBjb25zdCBmb3JtYXQgPSAoLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY29uc29sZVsnbG9nJ10+KSA9PiB7XG4gICAgICByZXR1cm4gYXJncy5tYXAoYXJnID0+IHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnID8gYXJnIDogSlNPTi5zdHJpbmdpZnkoYXJnLCBudWxsLCAyKSkuam9pbignICcpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9nOiAoLi4uYXJncykgPT4gdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIGZvcm1hdChgWyR7bmFtZX1dYCwgLi4uYXJncykpLFxuICAgICAgZGVidWc6ICguLi5hcmdzKSA9PiB0aGlzLmxvZyhMb2dMZXZlbC5ERUJVRywgZm9ybWF0KGBbJHtuYW1lfV1gLCAuLi5hcmdzKSksXG4gICAgICBpbmZvOiAoLi4uYXJncykgPT4gdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgZm9ybWF0KGBbJHtuYW1lfV1gLCAuLi5hcmdzKSksXG4gICAgICB3YXJuOiAoLi4uYXJncykgPT4gdGhpcy5sb2coTG9nTGV2ZWwuV0FSTiwgZm9ybWF0KGBbJHtuYW1lfV1gLCAuLi5hcmdzKSksXG4gICAgICBlcnJvcjogKC4uLmFyZ3MpID0+IHRoaXMubG9nKExvZ0xldmVsLkVSUk9SLCBmb3JtYXQoYFske25hbWV9XWAsIC4uLmFyZ3MpKSxcbiAgICB9O1xuICB9XG5cbiAgbG9nKGxldmVsOiBMb2dMZXZlbCwgbWVzc2FnZTogc3RyaW5nLCBjb250ZXh0PzogTG9nQ29udGV4dCwgZXJyb3I/OiBFcnJvcik6IHZvaWQge1xuICAgIC8vIEFwcGx5IGZpbHRlcmluZyBhdCBzZXJ2aWNlIGxldmVsIGlmIExvZ0ZpbHRlciBpcyBwcm92aWRlZFxuICAgIGlmICh0aGlzLmZpbHRlciAmJiAhdGhpcy5maWx0ZXIobGV2ZWwsIGNvbnRleHQpKSByZXR1cm47XG5cbiAgICB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLmxvZyhsZXZlbCwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpKTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubG9nZ2Vycy5mb3JFYWNoKGxvZ2dlciA9PiBsb2dnZXIuY2xvc2UoKSk7XG4gIH1cblxuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIG1lc3NhZ2UsIGNvbnRleHQpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ/OiBMb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgbWVzc2FnZSwgY29udGV4dCk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5XQVJOLCBtZXNzYWdlLCBjb250ZXh0KTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiBFcnJvciwgY29udGV4dD86IExvZ0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5FUlJPUiwgbWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICB9XG5cbiAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IEVycm9yLCBjb250ZXh0PzogTG9nQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkZBVEFMLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvcik7XG4gIH1cblxuICBzZXRMb2dMZXZlbChsZXZlbDogTG9nTGV2ZWwpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLnNldExvZ0xldmVsKGxldmVsKSk7XG4gIH1cblxuICBzZXRDb21wb25lbnQoY29tcG9uZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlcnMuZm9yRWFjaChsb2dnZXIgPT4gbG9nZ2VyLnNldENvbXBvbmVudChjb21wb25lbnQpKTtcbiAgfSBcbn0iXX0=","import { inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport { LoggingService } from './logging.service';\nlet globalLogging = null;\nexport { globalLogging as logging };\nexport function setGlobalLogging(logging) {\n globalLogging = logging;\n}\nexport function getGlobalLogging() {\n return globalLogging;\n}\nexport function createLogger(name) {\n return globalLogging;\n}\nexport function getLogger(name) {\n return globalLogging?.getLogger(name);\n}\nexport function provideGlobalLogging() {\n return makeEnvironmentProviders([\n provideAppInitializer(() => {\n return setGlobalLogging(inject(LoggingService));\n })\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWxvZ2dpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2xvZ2dpbmcvZ2xvYmFsLWxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFVLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNELElBQUksYUFBYSxHQUEwQixJQUFJLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUVwQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBdUI7SUFDdEQsYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFTO0lBQ3BDLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVk7SUFDcEMsT0FBTyxhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgcHJvdmlkZUFwcEluaXRpYWxpemVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTG9nZ2luZ1NlcnZpY2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgTG9nZ2VyLCBMb2dnaW5nU2VydmljZSB9IGZyb20gJy4vbG9nZ2luZy5zZXJ2aWNlJztcblxubGV0IGdsb2JhbExvZ2dpbmc6IExvZ2dpbmdTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5leHBvcnQgeyBnbG9iYWxMb2dnaW5nIGFzIGxvZ2dpbmcgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldEdsb2JhbExvZ2dpbmcobG9nZ2luZzogTG9nZ2luZ1NlcnZpY2UpOiB2b2lkIHtcbiAgZ2xvYmFsTG9nZ2luZyA9IGxvZ2dpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWxMb2dnaW5nKCk6IExvZ2dpbmdTZXJ2aWNlIHwgbnVsbCB7XG4gIHJldHVybiBnbG9iYWxMb2dnaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKG5hbWU6IGFueSk6IElMb2dnaW5nU2VydmljZSB7XG4gIHJldHVybiBnbG9iYWxMb2dnaW5nO1xufSBcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlcihuYW1lOiBzdHJpbmcpOiBMb2dnZXIge1xuICByZXR1cm4gZ2xvYmFsTG9nZ2luZz8uZ2V0TG9nZ2VyKG5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUdsb2JhbExvZ2dpbmcoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlQXBwSW5pdGlhbGl6ZXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHNldEdsb2JhbExvZ2dpbmcoaW5qZWN0KExvZ2dpbmdTZXJ2aWNlKSk7XG4gICAgfSlcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWNvbW1vbi1pbmZyYXN0cnVjdHVyZS1sb2dnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9sb2dnaW5nL254LWRkZC1jb21tb24taW5mcmFzdHJ1Y3R1cmUtbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,46 @@ declare abstract class BaseLogger {
|
|
|
78
78
|
}
|
|
79
79
|
declare function provideLogger(useFactory: () => BaseLogger): Provider;
|
|
80
80
|
|
|
81
|
+
/**
|
|
82
|
+
* LogFilter - Simple function-based log filtering
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Log filter function type
|
|
87
|
+
* @param level - The log level
|
|
88
|
+
* @param context - Optional log context (component name, etc.)
|
|
89
|
+
* @returns true if the log should be output, false to suppress
|
|
90
|
+
*/
|
|
91
|
+
type LogFilterFn = (level: LogLevel, context?: LogContext) => boolean;
|
|
92
|
+
declare const LOG_FILTER: InjectionToken<LogFilterFn>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Provider functions for log filtering
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Provide a log filter function
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* // Filter by log level
|
|
103
|
+
* provideLogFilter((level) => level >= LogLevel.WARN)
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* // Filter by component
|
|
107
|
+
* provideLogFilter((level, context) => context?.component?.startsWith('My'))
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* // Allow all logs
|
|
111
|
+
* provideLogFilter(() => true)
|
|
112
|
+
*/
|
|
113
|
+
declare function provideLogFilter(filter: LogFilterFn): Provider;
|
|
114
|
+
/**
|
|
115
|
+
* Provide a log filter based on environment variables
|
|
116
|
+
* - LOG_LEVEL: Minimum log level (DEBUG, INFO, WARN, ERROR)
|
|
117
|
+
* - LOG_COMPONENTS: Regex pattern for component names
|
|
118
|
+
*/
|
|
119
|
+
declare function provideLogFilterFromEnv(): Provider;
|
|
120
|
+
|
|
81
121
|
declare const LOGGING_SERVICE: InjectionToken<ILoggingService>;
|
|
82
122
|
interface Logger {
|
|
83
123
|
log: (...args: Parameters<typeof console['log']>) => void;
|
|
@@ -88,6 +128,7 @@ interface Logger {
|
|
|
88
128
|
}
|
|
89
129
|
declare class LoggingService implements ILoggingService {
|
|
90
130
|
private loggers;
|
|
131
|
+
private filter;
|
|
91
132
|
getLogger(name: string): Logger;
|
|
92
133
|
log(level: LogLevel, message: string, context?: LogContext, error?: Error): void;
|
|
93
134
|
close(): void;
|
|
@@ -110,5 +151,5 @@ declare function createLogger(name: any): ILoggingService;
|
|
|
110
151
|
declare function getLogger(name: string): Logger;
|
|
111
152
|
declare function provideGlobalLogging(): EnvironmentProviders;
|
|
112
153
|
|
|
113
|
-
export { BaseLogger, LOGGER, LOGGING_SERVICE, LogLevel, LoggingService, createLogger, getGlobalLogging, getLogger, globalLogging as logging, provideGlobalLogging, provideLogger, setGlobalLogging };
|
|
114
|
-
export type { ILoggingService, LogContext, Logger };
|
|
154
|
+
export { BaseLogger, LOGGER, LOGGING_SERVICE, LOG_FILTER, LogLevel, LoggingService, createLogger, getGlobalLogging, getLogger, globalLogging as logging, provideGlobalLogging, provideLogFilter, provideLogFilterFromEnv, provideLogger, setGlobalLogging };
|
|
155
|
+
export type { ILoggingService, LogContext, LogFilterFn, Logger };
|