@spinajs/log-common 2.0.481 → 2.0.484

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.
Files changed (68) hide show
  1. package/README.md +125 -4
  2. package/lib/cjs/BatchQueue.d.ts +127 -0
  3. package/lib/cjs/BatchQueue.d.ts.map +1 -0
  4. package/lib/cjs/BatchQueue.js +126 -0
  5. package/lib/cjs/BatchQueue.js.map +1 -0
  6. package/lib/cjs/filters/filter.d.ts +27 -0
  7. package/lib/cjs/filters/filter.d.ts.map +1 -0
  8. package/lib/cjs/filters/filter.js +20 -0
  9. package/lib/cjs/filters/filter.js.map +1 -0
  10. package/lib/cjs/filters/whenRepeated.d.ts +52 -0
  11. package/lib/cjs/filters/whenRepeated.d.ts.map +1 -0
  12. package/lib/cjs/filters/whenRepeated.js +98 -0
  13. package/lib/cjs/filters/whenRepeated.js.map +1 -0
  14. package/lib/cjs/format.d.ts +20 -0
  15. package/lib/cjs/format.d.ts.map +1 -0
  16. package/lib/cjs/format.js +75 -0
  17. package/lib/cjs/format.js.map +1 -0
  18. package/lib/cjs/index.d.ts +260 -21
  19. package/lib/cjs/index.d.ts.map +1 -1
  20. package/lib/cjs/index.js +211 -34
  21. package/lib/cjs/index.js.map +1 -1
  22. package/lib/cjs/perf.d.ts +109 -0
  23. package/lib/cjs/perf.d.ts.map +1 -0
  24. package/lib/cjs/perf.js +162 -0
  25. package/lib/cjs/perf.js.map +1 -0
  26. package/lib/cjs/persistence.d.ts +19 -0
  27. package/lib/cjs/persistence.d.ts.map +1 -0
  28. package/lib/cjs/persistence.js +137 -0
  29. package/lib/cjs/persistence.js.map +1 -0
  30. package/lib/cjs/serializers.d.ts +77 -0
  31. package/lib/cjs/serializers.d.ts.map +1 -0
  32. package/lib/cjs/serializers.js +215 -0
  33. package/lib/cjs/serializers.js.map +1 -0
  34. package/lib/mjs/BatchQueue.d.ts +127 -0
  35. package/lib/mjs/BatchQueue.d.ts.map +1 -0
  36. package/lib/mjs/BatchQueue.js +122 -0
  37. package/lib/mjs/BatchQueue.js.map +1 -0
  38. package/lib/mjs/filters/filter.d.ts +27 -0
  39. package/lib/mjs/filters/filter.d.ts.map +1 -0
  40. package/lib/mjs/filters/filter.js +16 -0
  41. package/lib/mjs/filters/filter.js.map +1 -0
  42. package/lib/mjs/filters/whenRepeated.d.ts +52 -0
  43. package/lib/mjs/filters/whenRepeated.d.ts.map +1 -0
  44. package/lib/mjs/filters/whenRepeated.js +95 -0
  45. package/lib/mjs/filters/whenRepeated.js.map +1 -0
  46. package/lib/mjs/format.d.ts +20 -0
  47. package/lib/mjs/format.d.ts.map +1 -0
  48. package/lib/mjs/format.js +72 -0
  49. package/lib/mjs/format.js.map +1 -0
  50. package/lib/mjs/index.d.ts +260 -21
  51. package/lib/mjs/index.d.ts.map +1 -1
  52. package/lib/mjs/index.js +205 -11
  53. package/lib/mjs/index.js.map +1 -1
  54. package/lib/mjs/perf.d.ts +109 -0
  55. package/lib/mjs/perf.d.ts.map +1 -0
  56. package/lib/mjs/perf.js +157 -0
  57. package/lib/mjs/perf.js.map +1 -0
  58. package/lib/mjs/persistence.d.ts +19 -0
  59. package/lib/mjs/persistence.d.ts.map +1 -0
  60. package/lib/mjs/persistence.js +132 -0
  61. package/lib/mjs/persistence.js.map +1 -0
  62. package/lib/mjs/serializers.d.ts +77 -0
  63. package/lib/mjs/serializers.d.ts.map +1 -0
  64. package/lib/mjs/serializers.js +208 -0
  65. package/lib/mjs/serializers.js.map +1 -0
  66. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  67. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  68. package/package.json +8 -9
@@ -1,4 +1,12 @@
1
1
  import { Container, SyncService } from "@spinajs/di";
2
+ export * from "./serializers.js";
3
+ export * from "./filters/filter.js";
4
+ export * from "./filters/whenRepeated.js";
5
+ export * from "./BatchQueue.js";
6
+ export * from "./persistence.js";
7
+ export * from "./perf.js";
8
+ import type { IWhenRepeatedOptions } from "./filters/whenRepeated.js";
9
+ import type { ILogFilterOptions, LogFilter } from "./filters/filter.js";
2
10
  export declare enum LogLevel {
3
11
  Security = 999,
4
12
  Fatal = 6,
@@ -19,6 +27,20 @@ export declare const StrToLogLevel: {
19
27
  fatal: LogLevel;
20
28
  security: LogLevel;
21
29
  };
30
+ /**
31
+ * Sentinel level sitting one ABOVE {@link LogLevel.Security} ( SpinaJS's highest
32
+ * real level ). Used by `Log.disableAll()` as the runtime override so even a
33
+ * `security()` call is gated out - `isEnabled` compares numerically, so nothing
34
+ * ever reaches it.
35
+ */
36
+ export declare const SILENT_LEVEL: number;
37
+ /**
38
+ * Normalises a level given either as a {@link LogLevel} number or a level name
39
+ * ( "trace" | "debug" | ... ) to its numeric value. Single validation choke
40
+ * point: an unknown name throws a clear error. Numbers pass straight through
41
+ * ( so {@link SILENT_LEVEL } and other synthetic values are accepted ).
42
+ */
43
+ export declare function normalizeLevel(level: LogLevel | string): LogLevel;
22
44
  export declare const LogLevelStrings: {
23
45
  1: string;
24
46
  5: string;
@@ -29,20 +51,75 @@ export declare const LogLevelStrings: {
29
51
  0: string;
30
52
  4: string;
31
53
  };
54
+ /**
55
+ * Maps SpinaJS log levels onto the OpenTelemetry SeverityNumber scale ( 1..24 ),
56
+ * so structured logs can be severity-ranked/filtered by any OTel-aware backend
57
+ * ( Grafana, Datadog, Elastic, OTLP pipelines ). Anchored on the OTel bands:
58
+ * TRACE 1-4, DEBUG 5-8, INFO 9-12, WARN 13-16, ERROR 17-20, FATAL 21-24.
59
+ * Success sits in the INFO band ( above plain info ); Security is mapped to the
60
+ * top of the FATAL band as SpinaJS's highest severity.
61
+ */
62
+ export declare const LogLevelToSeverityNumber: Record<LogLevel, number>;
32
63
  export interface ILogRule {
33
64
  name: string;
34
65
  level: "trace" | "debug" | "info" | "warn" | "error" | "fatal" | "security" | "success";
35
66
  target: string | string[];
67
+ /**
68
+ * Optional UPPER bound of the level window this rule routes ( inclusive ).
69
+ * `level` is the lower bound; when `maxLevel` is set the rule only routes
70
+ * entries whose level is in `[level, maxLevel]` ( eg. `level:"warn"` +
71
+ * `maxLevel:"error"` routes warn/error but NOT fatal/security ). Defaults to
72
+ * the highest level ( security ) so a plain min-only rule keeps working.
73
+ */
74
+ maxLevel?: ILogRule["level"];
75
+ /**
76
+ * Stop evaluating further rules for a logger once this matching rule is applied
77
+ * ( NLog-style ). Earlier matched rules and this one still apply.
78
+ */
79
+ final?: boolean;
36
80
  }
37
81
  export interface ITargetsOption {
38
82
  name: string;
39
83
  type: string;
40
84
  options?: ICommonTargetOptions;
85
+ /**
86
+ * When `false` the target is NOT instantiated at all ( its class is never
87
+ * constructed, so a disabled FileTarget never opens its file / starts timers ).
88
+ * A rule referencing only disabled targets is silently skipped; a rule
89
+ * referencing a target NAME that does not exist still throws. Default `true`.
90
+ */
91
+ enabled?: boolean;
92
+ /**
93
+ * Per-target filter pipeline, applied ONLY when writing to THIS target ( in
94
+ * addition to the logger-level `filters` ). Each entry is `{ type, ...opts }`
95
+ * where `type` is the DI string name of a {@link LogFilter }. Filters run IN
96
+ * ORDER for this target; any returning null drops the entry for this target
97
+ * only. Because filters may MUTATE the entry, the dispatcher clones the entry
98
+ * per target before running them so mutation never bleeds across targets.
99
+ */
100
+ filters?: ILogFilterOptions[];
41
101
  }
42
102
  export interface ILogOptions {
43
103
  targets: ITargetsOption[];
44
104
  rules: ILogRule[];
45
105
  variables?: Record<string, unknown>;
106
+ /**
107
+ * Opt-in dedup filter that collapses identical repeated log entries. When set,
108
+ * every logger gets its OWN WhenRepeatedFilter instance ( independent state ).
109
+ * Default off.
110
+ *
111
+ * @deprecated prefer `filters: [{ type: "WhenRepeatedFilter", ... }]`. Kept
112
+ * for backward compat - when set it is mapped to a prepended WhenRepeatedFilter.
113
+ */
114
+ whenRepeated?: IWhenRepeatedOptions;
115
+ /**
116
+ * Composable per-logger filter pipeline. Each entry is `{ type, ...opts }`
117
+ * where `type` is the DI string name of a {@link LogFilter } ( eg.
118
+ * "LevelFilter", "MatchFilter", "RateLimitFilter", "WhenRepeatedFilter" ).
119
+ * Filters run IN ORDER inside `write()`; any filter returning null drops the
120
+ * entry. Off ( empty ) by default.
121
+ */
122
+ filters?: ILogFilterOptions[];
46
123
  }
47
124
  export interface ICommonTargetOptions {
48
125
  /**
@@ -82,53 +159,91 @@ export interface IColoredConsoleTargetOptions extends ICommonTargetOptions {
82
159
  export interface IFileTargetOptions extends ICommonTargetOptions {
83
160
  options: {
84
161
  /**
85
- * path whre log is stored. It is allowed to use variables to create path eg. date / time etc.
162
+ * path where the active log is stored ( relative to the `fs` provider base
163
+ * path ). Variables are allowed to build the path eg. date / time etc.
86
164
  */
87
165
  path: string;
88
166
  /**
89
- * Archive path for logs eg. when size is exceeded. Is is allowed to use variables eg. date / time etc.
167
+ * Directory ( relative to the `archiveFs` provider base path ) rotated /
168
+ * archived files are stored in. Variables are allowed.
90
169
  *
91
- * Default is none. When not set archive files are stored in same folder as logs.
170
+ * When not set archives are stored in the same directory as the active log.
92
171
  */
93
172
  archivePath: string;
94
173
  /**
95
- * Maximum log file size, if exceeded it is moved to archive, and new log file is created
96
- *
97
- * Default is 1mb
174
+ * Name of the registered `@spinajs/fs` provider that stores the ACTIVE log
175
+ * file. Defaults to `fs-log-default` ( registered automatically, base path
176
+ * = process.cwd() ).
177
+ */
178
+ fs?: string;
179
+ /**
180
+ * Name of the registered `@spinajs/fs` provider archives are moved to.
181
+ * Defaults to the same provider as `fs`.
182
+ */
183
+ archiveFs?: string;
184
+ /**
185
+ * Class name of the LogArchiveStrategy that decides WHEN to rotate.
186
+ * Default is `SizeLogArchiveStrategy` ( interval size check ). Use
187
+ * `CronLogArchiveStrategy` together with `rotate` for scheduled rotation.
188
+ */
189
+ archiveStrategy?: string;
190
+ /**
191
+ * List of LogRetentionStrategy class names applied in order after each
192
+ * rotation. Compose eg. count + age. Default is [`CountLogRetentionStrategy`].
193
+ */
194
+ retentionStrategies?: string[];
195
+ /**
196
+ * Maximum active log file size in bytes. When exceeded the file is rotated
197
+ * to the archive by `SizeLogArchiveStrategy`. Default is 1mb.
98
198
  */
99
199
  maxSize: number;
100
200
  /**
101
- * Should compress log file when moved to archive
201
+ * Compress ( zip ) the archived file when moved to the archive.
102
202
  *
103
- * Default is false
203
+ * Default is false.
104
204
  */
105
205
  compress: boolean;
106
206
  /**
107
- * Should rotate log file eg. new file every new day.
108
- * You should use cron like definition eg. at 1am every day: 0 1 * * *
109
- * When rotate event occurs, old file is moved to archive, and new one is created
207
+ * Cron expression used by `CronLogArchiveStrategy` to rotate the log
208
+ * ( 6-field with seconds supported, eg. '0 0 1 * * *' = 1am daily ).
209
+ * Required when that strategy is selected.
110
210
  *
111
- * Default is not set
211
+ * Default is not set.
112
212
  */
113
213
  rotate: string;
114
214
  /**
115
- * Max internal message buffer size before writting to file
116
- * If bigger the number - less writes to disk.
117
- *
118
- * Set it big when logging very frequently to avoid disk writes
119
- * Defaults to 100 messages
215
+ * Max internal message buffer size before writing to file. Higher means
216
+ * fewer disk writes. Defaults to 100 messages.
120
217
  */
121
218
  maxBufferSize: number;
122
219
  /**
123
- * How mutch archive files should be preserved before deletion. Default is 0
124
- * Eg. to store max 5 archive files, set it to 5. Oldest by modification time are deleted.
220
+ * Hard cap on the number of buffered messages held in memory. When exceeded
221
+ * ( eg. the fs sink is down and appends keep failing so the batch is
222
+ * prepended back ) the OLDEST buffered messages are dropped so memory stays
223
+ * bounded. Defaults to 100000.
224
+ */
225
+ maxQueueSize: number;
226
+ /**
227
+ * How many archive files to keep before deletion, used by
228
+ * `CountLogRetentionStrategy`. Oldest by modification time are deleted.
229
+ * Default is 5.
125
230
  */
126
231
  maxArchiveFiles: number;
127
232
  /**
128
- * Log archive interval at whitch process should check if log files need archiving, in seconds.
129
- * Default is 3 minutes
233
+ * Max archive age in seconds, used by `AgeLogRetentionStrategy`. Archives
234
+ * older than this are deleted. Default is 7 days.
235
+ */
236
+ maxAge?: number;
237
+ /**
238
+ * Interval in seconds at which `SizeLogArchiveStrategy` checks whether the
239
+ * active log needs rotating. Default is 60 seconds.
130
240
  */
131
241
  archiveInterval: number;
242
+ /**
243
+ * Periodic flush tick in milliseconds. A partially filled buffer is flushed
244
+ * at least this often so messages are not held indefinitely. Default 1000ms.
245
+ */
246
+ flushInterval?: number;
132
247
  };
133
248
  }
134
249
  export interface ILogStaticVariables {
@@ -149,12 +264,55 @@ export declare abstract class LogTarget<T extends ICommonTargetOptions> extends
149
264
  Error: Error | null | unknown;
150
265
  Options: T;
151
266
  constructor(options: T);
267
+ /**
268
+ * Write ( accept ) a single log entry.
269
+ *
270
+ * ## Rejection contract
271
+ *
272
+ * `write()` MAY reject to signal that the entry was NOT accepted / delivered.
273
+ * Self-healing targets ( File / Loki / OTLP ) RESOLVE because they own their
274
+ * reliability ( they buffer, requeue and retry internally ); wrappers like
275
+ * {@link RetryingTarget} / {@link FallbackGroupTarget} act on a rejection for
276
+ * targets that surface failure ( console / custom / strict ). A resolved
277
+ * write means "accepted for delivery", not necessarily "durably delivered".
278
+ */
152
279
  abstract write(data: ILogEntry): void;
280
+ /**
281
+ * Drop-hook. Set by a wrapper ( eg. {@link FallbackGroupTarget} ) to receive
282
+ * entries this target GAVE UP on ( buffer overflow or a non-retryable delivery
283
+ * failure ), so a durable fallback can catch EXACTLY what was not delivered —
284
+ * no duplicates. `null` ( the default ) means nobody is listening and dropped
285
+ * entries are simply discarded, as before.
286
+ */
287
+ OnDropped: ((entry: ILogEntry) => void) | null;
288
+ /** Flush any buffered entries to the underlying sink. Default no-op; buffered targets override. */
289
+ forceFlush(): Promise<void>;
153
290
  }
154
291
  export interface ILogTargetDesc {
155
292
  instance: LogTarget<ICommonTargetOptions>;
156
293
  options?: ITargetsOption;
294
+ /**
295
+ * Representative rule for this target ( the one with the LOWEST min level ).
296
+ * Kept for the "no target" error message and back-compat; actual dispatch uses
297
+ * {@link ranges }, not this rule's single level.
298
+ */
157
299
  rule: ILogRule;
300
+ /**
301
+ * Union of level WINDOWS routing to this target. Several rules can route to the
302
+ * same target with DIFFERENT `[level, maxLevel]` windows; dispatch tests
303
+ * membership in ANY of them. A plain min-only rule yields `[min, Security]`, so
304
+ * behavior is unchanged for existing configs.
305
+ */
306
+ ranges: {
307
+ min: LogLevel;
308
+ max: LogLevel;
309
+ }[];
310
+ /**
311
+ * Resolved per-target filters ( from the target def's `filters` ), applied in
312
+ * `write()` after the logger-level pipeline, for THIS target only. `@NewInstance`
313
+ * so each logger's use of the target gets its own filter instances / state.
314
+ */
315
+ filters?: LogFilter[];
158
316
  }
159
317
  export declare function createLogMessageObject(err: Error | string, message: string | any[], level: LogLevel, logger: string, variables: any, ...args: any[]): ILogEntry;
160
318
  export declare abstract class Log extends SyncService {
@@ -168,6 +326,53 @@ export declare abstract class Log extends SyncService {
168
326
  protected Rules: ILogRule[];
169
327
  protected Container: Container;
170
328
  protected Variables: Record<string, any>;
329
+ /**
330
+ * Lowest level any of this logger's targets accepts ( the MIN across its
331
+ * matched rules ). Set by FrameworkLogger.resolve(); default Trace = allow
332
+ * all. A call below this level would be dropped by every target anyway, so the
333
+ * per-method guard can safely short-circuit on it.
334
+ */
335
+ protected MinLevel: LogLevel;
336
+ /**
337
+ * Runtime level override ( loglevel-style ). `null` means "no override, use
338
+ * MinLevel". Set via setLevel/enableAll/disableAll, cleared via resetLevel.
339
+ */
340
+ protected LevelOverride: LogLevel | null;
341
+ /** Effective minimum level: the runtime override if set, otherwise MinLevel. */
342
+ getLevel(): LogLevel;
343
+ /** True when a call at `level` should be emitted given the effective level. */
344
+ protected isEnabled(level: LogLevel): boolean;
345
+ /**
346
+ * Set a runtime level override. Accepts a {@link LogLevel} or a level name.
347
+ * When `persist` ( default true ) the choice is stored so it survives a
348
+ * browser reload ( no-op on Node ).
349
+ */
350
+ setLevel(level: LogLevel | keyof typeof StrToLogLevel, persist?: boolean): void;
351
+ /**
352
+ * Set the override ONLY if nothing is currently applied ( loglevel semantics:
353
+ * a default must never clobber a user's explicit / persisted choice ). Never
354
+ * persists.
355
+ */
356
+ setDefaultLevel(level: LogLevel | keyof typeof StrToLogLevel): void;
357
+ /** Drop the runtime override ( back to MinLevel ) and clear any persisted value. */
358
+ resetLevel(): void;
359
+ /** Enable every level ( Trace and up ). */
360
+ enableAll(persist?: boolean): void;
361
+ /**
362
+ * Disable every level - even {@link LogLevel.Security} - by raising the
363
+ * override to {@link SILENT_LEVEL} ( one above Security ).
364
+ */
365
+ disableAll(persist?: boolean): void;
366
+ /**
367
+ * Force-drain THIS logger's targets' buffers ( eg. File / Loki / OTLP batch
368
+ * queues ) so buffered entries are written out. Does NOT close / dispose the
369
+ * target - handle & timer teardown remains the DI container's job. Calling
370
+ * `forceFlush()` on a non-buffered target is a harmless no-op. Guarded so a
371
+ * logger that failed to resolve ( no `Targets` ) is a safe no-op.
372
+ */
373
+ flush(): Promise<void>;
374
+ /** Flush every registered logger ( best-effort; never rejects ). */
375
+ static flushAll(): Promise<void>;
171
376
  static clearLoggers(): Promise<Promise<void>[]>;
172
377
  addVariable(name: string, value: unknown): void;
173
378
  timeStart(name: string): void;
@@ -175,29 +380,59 @@ export declare abstract class Log extends SyncService {
175
380
  child(name: string, variables?: LogVariables): Log;
176
381
  abstract trace(message: string, ...args: any[]): void;
177
382
  abstract trace(err: Error, message: string, ...args: any[]): void;
383
+ abstract trace(fields: object, message?: string, ...args: any[]): void;
178
384
  abstract trace(err: Error | string, message: string | any[], ...args: any[]): void;
179
385
  abstract debug(message: string, ...args: any[]): void;
180
386
  abstract debug(err: Error, message: string, ...args: any[]): void;
387
+ abstract debug(fields: object, message?: string, ...args: any[]): void;
181
388
  abstract debug(err: Error | string, message: string | any[], ...args: any[]): void;
182
389
  abstract info(message: string, ...args: any[]): void;
183
390
  abstract info(err: Error, message: string, ...args: any[]): void;
391
+ abstract info(fields: object, message?: string, ...args: any[]): void;
184
392
  abstract info(err: Error | string, message: string | any[], ...args: any[]): void;
185
393
  abstract warn(message: string, ...args: any[]): void;
186
394
  abstract warn(err: Error, message: string, ...args: any[]): void;
395
+ abstract warn(fields: object, message?: string, ...args: any[]): void;
187
396
  abstract warn(err: Error | string, message: string | any[], ...args: any[]): void;
188
397
  abstract error(message: string, ...args: any[]): void;
189
398
  abstract error(err: Error, message: string, ...args: any[]): void;
399
+ abstract error(fields: object, message?: string, ...args: any[]): void;
190
400
  abstract error(err: Error | string, message: string | any[], ...args: any[]): void;
191
401
  abstract fatal(message: string, ...args: any[]): void;
192
402
  abstract fatal(err: Error, message: string, ...args: any[]): void;
403
+ abstract fatal(fields: object, message?: string, ...args: any[]): void;
193
404
  abstract fatal(err: Error | string, message: string | any[], ...args: any[]): void;
194
405
  abstract security(message: string, ...args: any[]): void;
195
406
  abstract security(err: Error, message: string, ...args: any[]): void;
407
+ abstract security(fields: object, message?: string, ...args: any[]): void;
196
408
  abstract security(err: Error | string, message: string | any[], ...args: any[]): void;
197
409
  abstract success(message: string, ...args: any[]): void;
198
410
  abstract success(err: Error, message: string, ...args: any[]): void;
411
+ abstract success(fields: object, message?: string, ...args: any[]): void;
199
412
  abstract success(err: Error | string, message: string | any[], ...args: any[]): void;
200
413
  abstract write(entry: ILogEntry): Promise<PromiseSettledResult<void>[]>;
414
+ /**
415
+ * Attach a sink to THIS logger AT RUNTIME ( bunyan `addStream` style ),
416
+ * without going through config. Returns the resolved target instance, or
417
+ * `undefined` when nothing was attached ( eg. `def.enabled === false` ).
418
+ *
419
+ * Default is a safe no-op ( returns `undefined` ) so `Log`-typed references
420
+ * and bootstrap proxies compile; {@link FrameworkLogger } overrides it with
421
+ * the real target-descriptor build + gate recompute.
422
+ */
423
+ addTarget(_def: ITargetsOption, _opts?: {
424
+ level?: keyof typeof StrToLogLevel;
425
+ maxLevel?: keyof typeof StrToLogLevel;
426
+ filters?: ILogFilterOptions[];
427
+ }): LogTarget<ICommonTargetOptions> | undefined;
428
+ /**
429
+ * Detach a runtime sink by its target `name`, flushing its buffered entries
430
+ * first ( it is NOT disposed - the instance may be DI-owned / shared ).
431
+ * No-op when no target with that name is attached.
432
+ *
433
+ * Default resolves immediately; {@link FrameworkLogger } overrides it.
434
+ */
435
+ removeTarget(_name: string): Promise<void>;
201
436
  }
202
437
  /**
203
438
  * Creates ( if not exists ) new logger instance with given name and optional variables
@@ -206,4 +441,8 @@ export declare abstract class Log extends SyncService {
206
441
  */
207
442
  export declare function Logger(name: string, variables?: Record<string, unknown>): (target: any, key: string) => any;
208
443
  export type LogVariables = ILogStaticVariables & ILogVariable;
444
+ /**
445
+ * Registers the ambient log-context provider. See {@link logContextProvider}.
446
+ */
447
+ export declare function setLogContextProvider(fn: () => Record<string, unknown>): void;
209
448
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}