@flying-dice/tslua-common
Version:
Common Utils Library
121 lines (120 loc) • 3.82 kB
TypeScript
/**
* LogLevel represents the different severity levels that can be used to log messages.
*
* The levels are TRACE, DEBUG, INFO, WARN, ERROR, and OFF.
*
* OFF is a special level that can be used to disable logging.
*/
export declare enum LogLevel {
TRACE = 10,
DEBUG = 20,
INFO = 30,
WARN = 40,
ERROR = 50,
OFF = 100
}
/**
* LoggerTransports are the functions that are used to log messages with different severity levels.
*
* They are statically defined on the Logger class.
*
* Update them to change the way messages are logged.
*
* @example
* const logger = new Logger("MyLogger");
* logger.transports = { debug: print, info: print, warn: print, error: print };
*/
export interface LoggerTransports {
trace: (message: string) => void;
debug: (message: string) => void;
info: (message: string) => void;
warn: (message: string) => void;
error: (message: string) => void;
}
/**
* Represents a logger that can be used to log messages with different severity levels.
*
* Change the static level property to change the severity level of messages that are logged.
*
* Change the static transports property to change the way messages are logged.
*
* Use Logger.ignore to ignore a severity level.
*
* @example
* const logger = new Logger("MyLogger");
* Logger.level = LogLevel.DEBUG;
* Logger.transports = { debug: print, info: print, warn: print, error: print };
*/
export declare class Logger {
protected name: string;
static level: LogLevel;
static transports: LoggerTransports;
constructor(name: string);
/**
* Logs a trace message.
*
* Trace messages are the most verbose and should only be used for debugging.
*
* @param message The message to be logged.
* @example
* const logger = new Logger("MyLogger");
* logger.trace("This is a trace message");
*/
trace(message: string): void;
/**
* Logs a debug message.
*
* Debug messages are less verbose than trace messages and should be used for debugging.
*
* @param message The message to be logged.
* @example
* const logger = new Logger("MyLogger");
* logger.debug("This is a debug message");
*/
debug(message: string): void;
/**
* Logs an info message.
*
* Info messages are less verbose than debug messages and should be used for logging information.
*
* @param message The message to be logged.
* @example
* const logger = new Logger("MyLogger");
* logger.info("This is an info message");
*/
info(message: string): void;
/**
* Logs a warning message.
*
* Warning messages are less verbose than info messages and should be used for logging warnings.
*
* @param message The message to be logged.
* @example
* const logger = new Logger("MyLogger");
* logger.warn("This is a warning message");
*/
warn(message: string): void;
/**
* Logs an error message.
*
* Error messages are the least verbose and should be used for logging errors.
*
* @param message The message to be logged.
* @example
* const logger = new Logger("MyLogger");
* logger.error("This is an error message");
*/
error(message: string): void;
/**
* A transport function that does nothing.
*
* Use this to ignore a severity level as an alternative to setting the LogLevel, this can be useful
* where for example the trace transport is enabled but sending to an alternative location,
* but you want to disable info.
*
* @example
* const logger = new Logger("MyLogger");
* logger.transports = { debug: Logger.ignore, info: Logger.ignore, warn: print, error: print };
*/
static ignore(): void;
}