change: add global setGlobalLoggerFactory function

This commit is contained in:
Ruben Taelman
2020-09-23 09:18:16 +02:00
committed by Ruben Taelman
parent db9aefe551
commit 4c534e9d5d
4 changed files with 30 additions and 9 deletions

View File

@@ -1,9 +1,8 @@
import streamifyArray from 'streamify-array';
import type { AclManager } from '../authorization/AclManager';
import { RepresentationMetadata } from '../ldp/representation/RepresentationMetadata';
import { LazyLoggerFactory } from '../logging/LazyLoggerFactory';
import type { LoggerFactory } from '../logging/LoggerFactory';
import { getLoggerFor } from '../logging/LogUtil';
import { getLoggerFor, setGlobalLoggerFactory } from '../logging/LogUtil';
import type { ExpressHttpServer } from '../server/ExpressHttpServer';
import type { ResourceStore } from '../storage/ResourceStore';
import { TEXT_TURTLE } from '../util/ContentTypes';
@@ -42,7 +41,7 @@ export class Setup {
*/
public async setup(): Promise<string> {
// Configure the logger factory so that others can statically call it.
LazyLoggerFactory.getInstance().setLoggerFactory(this.loggerFactory);
setGlobalLoggerFactory(this.loggerFactory);
// Set up acl so everything can still be done by default
// Note that this will need to be adapted to go through all the correct channels later on

View File

@@ -1,5 +1,6 @@
import { LazyLoggerFactory } from './LazyLoggerFactory';
import type { Logger } from './Logger';
import type { LoggerFactory } from './LoggerFactory';
/**
* Gets a logger instance for the given class instance.
@@ -19,8 +20,16 @@ import type { Logger } from './Logger';
*
* @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.
*/
export const setGlobalLoggerFactory = (loggerFactory: LoggerFactory | undefined): void => LazyLoggerFactory
.getInstance().setLoggerFactory(loggerFactory);
/**
* Helper interface to identify class instances.