container.ts
Version:
Modular application framework
40 lines (39 loc) • 1.59 kB
TypeScript
import { ErrorChain } from "../lib/error";
/** Log levels defined in RFC5424. */
export declare enum ELogLevel {
Emergency = 0,
Alert = 1,
Critical = 2,
Error = 3,
Warning = 4,
Notice = 5,
Informational = 6,
Debug = 7
}
/** Log message types. */
export declare type ILogMessage = string | Error | ErrorChain;
/** Log metadata type. */
export interface ILogMetadata extends Object {
[key: string]: any;
}
/** Abstract log class. */
export declare abstract class Log {
/** System is unusable. */
emergency(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Action must be taken immediately. */
alert(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Critical conditions. */
critical(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Error conditions. */
error(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Warning conditions. */
warn(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Normal but significant condition. */
notice(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Informational messages. */
info(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Debug level messages. */
debug(message: ILogMessage, metadata?: ILogMetadata, ...args: any[]): void;
/** Log method provided by implementor. */
protected abstract log(level: ELogLevel, message: ILogMessage, metadata: ILogMetadata, ...args: any[]): void;
}