mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
change: use regular getters and setters in LazyLoggerFactory
This commit is contained in:
committed by
Ruben Taelman
parent
b62f4eb016
commit
f186bece9f
@@ -22,8 +22,7 @@ export class LazyLogger extends Logger {
|
||||
|
||||
public log(level: LogLevel, message: string, meta: any): Logger {
|
||||
if (!this.logger) {
|
||||
this.logger = this.lazyLoggerFactory.getLoggerFactoryOrThrow()
|
||||
.createLogger(this.label);
|
||||
this.logger = this.lazyLoggerFactory.loggerFactory.createLogger(this.label);
|
||||
}
|
||||
return this.logger.log(level, message, meta);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import type { LoggerFactory } from './LoggerFactory';
|
||||
export class LazyLoggerFactory implements LoggerFactory {
|
||||
private static readonly instance = new LazyLoggerFactory();
|
||||
|
||||
private loggerFactory: LoggerFactory | undefined;
|
||||
private ploggerFactory: LoggerFactory | undefined;
|
||||
|
||||
private constructor() {
|
||||
// Singleton instance
|
||||
@@ -28,14 +28,18 @@ export class LazyLoggerFactory implements LoggerFactory {
|
||||
return new LazyLogger(this, label);
|
||||
}
|
||||
|
||||
public setLoggerFactory(loggerFactory: LoggerFactory | undefined): void {
|
||||
this.loggerFactory = loggerFactory;
|
||||
public resetLoggerFactory(): void {
|
||||
this.ploggerFactory = undefined;
|
||||
}
|
||||
|
||||
public getLoggerFactoryOrThrow(): LoggerFactory {
|
||||
if (!this.loggerFactory) {
|
||||
public get loggerFactory(): LoggerFactory {
|
||||
if (!this.ploggerFactory) {
|
||||
throw new Error('No logger factory has been set yet. Can be caused logger invocation during initialization.');
|
||||
}
|
||||
return this.loggerFactory;
|
||||
return this.ploggerFactory;
|
||||
}
|
||||
|
||||
public set loggerFactory(loggerFactory: LoggerFactory) {
|
||||
this.ploggerFactory = loggerFactory;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,16 +20,25 @@ import type { LoggerFactory } from './LoggerFactory';
|
||||
*
|
||||
* @param loggable - A class instance or a class string name.
|
||||
*/
|
||||
export const getLoggerFor = (loggable: string | Instance): Logger => LazyLoggerFactory
|
||||
.getInstance().createLogger(typeof loggable === 'string' ? loggable : loggable.constructor.name);
|
||||
export const getLoggerFor = (loggable: string | Instance): Logger => LazyLoggerFactory.getInstance()
|
||||
.createLogger(typeof loggable === 'string' ? loggable : loggable.constructor.name);
|
||||
|
||||
/**
|
||||
* Sets the global logger factory.
|
||||
* This will cause all loggers created by {@link getLoggerFor} to be delegated to a logger from the given factory.
|
||||
* @param loggerFactory - A logger factory, of undefined for unsetting it.
|
||||
* @param loggerFactory - A logger factory.
|
||||
*/
|
||||
export const setGlobalLoggerFactory = (loggerFactory: LoggerFactory | undefined): void => LazyLoggerFactory
|
||||
.getInstance().setLoggerFactory(loggerFactory);
|
||||
export const setGlobalLoggerFactory = (loggerFactory: LoggerFactory): void => {
|
||||
LazyLoggerFactory.getInstance().loggerFactory = loggerFactory;
|
||||
};
|
||||
|
||||
/**
|
||||
* Resets the global logger factory to undefined.
|
||||
*
|
||||
* This typically only needs to be called during testing.
|
||||
* Call this at your own risk.
|
||||
*/
|
||||
export const resetGlobalLoggerFactory = (): void => LazyLoggerFactory.getInstance().resetLoggerFactory();
|
||||
|
||||
/**
|
||||
* Helper interface to identify class instances.
|
||||
|
||||
Reference in New Issue
Block a user