@sphereon/ssi-types
Version:
SSI Common Types
73 lines • 2.56 kB
TypeScript
import { EventEmitter } from 'events';
export declare enum LogLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
WARNING = 3,
ERROR = 4
}
export declare enum LoggingEventType {
AUDIT = "audit",
ACTIVITY = "activity",
GENERAL = "general"
}
export interface SimpleLogEvent {
type: LoggingEventType.GENERAL;
level: LogLevel;
correlationId?: string;
timestamp: Date;
data: string;
diagnosticData?: any;
}
export declare enum LogMethod {
DEBUG_PKG = 0,
CONSOLE = 1,
EVENT = 2
}
export interface SimpleLogOptions {
namespace?: string;
eventName?: string;
defaultLogLevel?: LogLevel;
methods?: LogMethod[];
}
export declare function logOptions(opts?: SimpleLogOptions): Required<SimpleLogOptions>;
export declare class Loggers {
private static readonly DEFAULT_KEY;
static readonly DEFAULT: Loggers;
private readonly namespaceOptions;
private readonly loggers;
constructor(defaultOptions?: Omit<SimpleLogOptions, 'namespace'>);
options(namespace: string, options: Omit<SimpleLogOptions, 'namespace'>): this;
defaultOptions(options: Omit<SimpleLogOptions, 'namespace'>): this;
register<T>(namespace: string, logger: ISimpleLogger<T>): ISimpleLogger<T>;
get<T>(namespace: string, registerLogger?: ISimpleLogger<T>): ISimpleLogger<T>;
}
export type ISimpleLogger<LogType> = {
options: Required<SimpleLogOptions>;
log(value: LogType, ...args: any[]): void;
info(value: LogType, ...args: any[]): void;
debug(value: LogType, ...args: any[]): void;
trace(value: LogType, ...args: any[]): void;
warning(value: LogType, ...args: any[]): void;
error(value: LogType, ...args: any[]): void;
logl(level: LogLevel, value: LogType, ...argsW: any[]): void;
};
export declare class SimpleLogger implements ISimpleLogger<any> {
private _eventEmitter;
private _options;
constructor(opts?: SimpleLogOptions);
get eventEmitter(): EventEmitter;
get options(): Required<SimpleLogOptions>;
trace(value: any, ...args: any[]): void;
debug(value: any, ...args: any[]): void;
info(value: any, ...args: any[]): void;
warning(value: any, ...args: any[]): void;
error(value: any, ...args: any[]): void;
logl(level: LogLevel, value: any, ...args: any[]): void;
private logImpl;
log(value: any, ...args: any[]): void;
}
export declare class SimpleRecordLogger extends SimpleLogger implements ISimpleLogger<Record<string, any>> {
constructor(opts?: SimpleLogOptions);
}
//# sourceMappingURL=index.d.ts.map