feat: add basic logging interfaces

This commit is contained in:
Ruben Taelman 2020-09-22 11:26:53 +02:00 committed by Ruben Taelman
parent e1533a0869
commit 1e255ca2e4
3 changed files with 33 additions and 0 deletions

4
src/logging/LogLevel.ts Normal file
View File

@ -0,0 +1,4 @@
/**
* Different log levels, from most important to least important.
*/
export type LogLevel = 'error' | 'warn' | 'info' | 'verbose' | 'debug' | 'silly';

17
src/logging/Logger.ts Normal file
View File

@ -0,0 +1,17 @@
import type { LogLevel } from './LogLevel';
/**
* Logs messages on a certain level.
*
* @see getLoggerFor on how to instantiate loggers.
*/
export interface Logger {
/**
* Log the given message at the given level.
* If the internal level is higher than the given level, the message may be voided.
* @param level - The level to log at.
* @param message - The message to log.
* @param meta - Optional metadata to include in the log message.
*/
log: (level: LogLevel, message: string, meta?: any) => Logger;
}

View File

@ -0,0 +1,12 @@
import type { Logger } from './Logger';
/**
* Instantiates new logger instances.
*/
export interface LoggerFactory {
/**
* Create a logger instance for the given label.
* @param label - A label that is used to identify the given logger.
*/
createLogger: (label: string) => Logger;
}