2020-11-06 08:10:30 +00:00
|
|
|
/**
|
|
|
|
* @author Martin Karkowski
|
|
|
|
* @email m.karkowski@zema.de
|
|
|
|
* @create date 2020-11-06 08:54:35
|
2022-01-03 18:13:51 +00:00
|
|
|
* @modify date 2022-01-03 18:02:49
|
2020-11-06 08:10:30 +00:00
|
|
|
* @desc [description]
|
|
|
|
*/
|
|
|
|
|
2021-10-18 06:02:46 +00:00
|
|
|
import { ILogger } from "js-logger";
|
2020-11-23 06:09:31 +00:00
|
|
|
import { getSingleton } from "../helpers/singletonMethod";
|
|
|
|
import { LoggerLevel, NopeLogger } from "./nopeLogger";
|
2020-08-25 08:21:55 +00:00
|
|
|
|
2020-11-06 08:10:30 +00:00
|
|
|
/**
|
2022-01-18 07:01:50 +00:00
|
|
|
* Return the central loger. This logger is a singleton (see {@link getSingleton})
|
|
|
|
*
|
|
|
|
* @author M.Karkowski
|
|
|
|
* @export
|
|
|
|
* @return {NopeLogger} A Returns the Logger {@link NopeLogger}
|
2020-11-06 08:10:30 +00:00
|
|
|
*/
|
2021-10-18 06:02:46 +00:00
|
|
|
export function getCentralNopeLogger(): NopeLogger {
|
2020-11-23 06:09:31 +00:00
|
|
|
const container = getSingleton("nopeBackendLogger.instance", () => {
|
2020-11-06 13:17:47 +00:00
|
|
|
return new NopeLogger();
|
|
|
|
});
|
2020-08-25 22:11:26 +00:00
|
|
|
|
2020-11-23 06:09:31 +00:00
|
|
|
return container.instance;
|
2020-08-25 22:11:26 +00:00
|
|
|
}
|
2020-08-25 08:21:55 +00:00
|
|
|
|
2020-11-06 08:10:30 +00:00
|
|
|
/**
|
2022-01-18 07:01:50 +00:00
|
|
|
* Helper Function, to create a Logger. Therefore it uses a specific Level and a Lable of the
|
2022-01-18 20:51:19 +00:00
|
|
|
* Logger. The Logger-Level can be overwritten by the central-logger see {@link getCentralNopeLogger}
|
|
|
|
*
|
2020-11-06 08:10:30 +00:00
|
|
|
*
|
|
|
|
* @export
|
|
|
|
* @param {LoggerLevel} level The Level, which should be rendered
|
|
|
|
* @param {string} [label=''] An Lable for the Logger. Every Message beginns with that lable.
|
|
|
|
* @return {*} Returns a Logger.
|
|
|
|
*/
|
2021-10-18 06:02:46 +00:00
|
|
|
export function getNopeLogger(name: string, level?: LoggerLevel): ILogger {
|
2020-11-06 13:17:47 +00:00
|
|
|
return getCentralNopeLogger().getLogger(name, level);
|
2021-05-21 17:21:53 +00:00
|
|
|
}
|
2022-01-03 18:13:51 +00:00
|
|
|
|
2022-01-18 07:01:50 +00:00
|
|
|
/**
|
|
|
|
* The valid defintion types for the logger.
|
|
|
|
*/
|
2022-01-03 18:13:51 +00:00
|
|
|
export type ValidLoggerDefinition = ILogger | LoggerLevel | false;
|
|
|
|
|
|
|
|
/**
|
2022-01-18 07:01:50 +00:00
|
|
|
* Helper to define a Logger based on the given Logger-Definition.
|
|
|
|
* Based on the type, a new logger is created ("LoggerLevel"), the
|
|
|
|
* provided Logger is used or if "false" no logger is returned.
|
2022-01-03 18:13:51 +00:00
|
|
|
*
|
|
|
|
* @author M.Karkowski
|
|
|
|
* @export
|
|
|
|
* @param {ValidLoggerDefinition} param
|
|
|
|
* @param {string} defaultName
|
|
|
|
* @return {*}
|
|
|
|
*/
|
|
|
|
export function defineNopeLogger(
|
|
|
|
param: ValidLoggerDefinition,
|
|
|
|
defaultName: string
|
|
|
|
) {
|
|
|
|
if (param == false) {
|
2022-01-18 07:01:50 +00:00
|
|
|
return undefined;
|
2022-01-03 18:13:51 +00:00
|
|
|
}
|
|
|
|
if (typeof param === "string") {
|
|
|
|
return getNopeLogger(defaultName, param);
|
|
|
|
}
|
|
|
|
return param as ILogger;
|
|
|
|
}
|