homebridge
Version:
HomeKit support for the impatient
105 lines • 3.38 kB
TypeScript
/**
* Log levels to indicate importance of the logged message.
* Every level corresponds to a certain color.
*
* - INFO: no color
* - SUCCESS: green
* - WARN: yellow
* - ERROR: red
* - DEBUG: gray
*
* Messages with DEBUG level are only displayed if explicitly enabled.
*/
export declare const enum LogLevel {
INFO = "info",
SUCCESS = "success",
WARN = "warn",
ERROR = "error",
DEBUG = "debug"
}
/**
* Represents a logging device which can be used directly as a function (for INFO logging)
* but also has dedicated logging functions for respective logging levels.
*/
export interface Logging {
prefix: string;
(message: string, ...parameters: any[]): void;
info(message: string, ...parameters: any[]): void;
success(message: string, ...parameters: any[]): void;
warn(message: string, ...parameters: any[]): void;
error(message: string, ...parameters: any[]): void;
debug(message: string, ...parameters: any[]): void;
log(level: LogLevel, message: string, ...parameters: any[]): void;
}
/**
* Logger class
*/
export declare class Logger {
static readonly internal: Logger;
private static readonly loggerCache;
private static debugEnabled;
private static timestampEnabled;
readonly prefix?: string;
constructor(prefix?: string);
/**
* Creates a new Logging device with a specified prefix.
*
* @param prefix {string} - the prefix of the logger
*/
static withPrefix(prefix: string): Logging;
/**
* Turns on debug level logging. Off by default.
*
* @param enabled {boolean}
*/
static setDebugEnabled(enabled?: boolean): void;
/**
* Turns on inclusion of timestamps in log messages. On by default.
*
* @param enabled {boolean}
*/
static setTimestampEnabled(enabled?: boolean): void;
/**
* Forces color in logging output, even if it seems like color is unsupported.
*/
static forceColor(): void;
info(message: string, ...parameters: any[]): void;
success(message: string, ...parameters: any[]): void;
warn(message: string, ...parameters: any[]): void;
error(message: string, ...parameters: any[]): void;
debug(message: string, ...parameters: any[]): void;
log(level: LogLevel, message: string, ...parameters: any[]): void;
}
/**
* Creates a new Logging device with a specified prefix.
*
* @param prefix {string} - the prefix of the logger
* @deprecated please use {@link Logger.withPrefix} directly
*/
export declare function withPrefix(prefix: string): Logging;
/**
* Gets the prefix
* @param prefix
*/
export declare function getLogPrefix(prefix: string): string;
/**
* Turns on debug level logging. Off by default.
*
* @param enabled {boolean}
* @deprecated please use {@link Logger.setDebugEnabled} directly
*/
export declare function setDebugEnabled(enabled?: boolean): void;
/**
* Turns on inclusion of timestamps in log messages. On by default.
*
* @param enabled {boolean}
* @deprecated please use {@link Logger.setTimestampEnabled} directly
*/
export declare function setTimestampEnabled(enabled?: boolean): void;
/**
* Forces color in logging output, even if it seems like color is unsupported.
*
* @deprecated please use {@link Logger.forceColor} directly
*/
export declare function forceColor(): void;
//# sourceMappingURL=logger.d.ts.map