import { ITrackerTransport } from "./ITrackerTransport"; export declare enum TraceLevel { Verbose = 0, Info = 1, Warn = 2, Error = 3, } /** * Provides logging and telemetry processing functionality. * * Logging is done via winston transports. * Telemetry is done via ITrackerTransports. */ export declare class Logger { private globalLogLevel; private logger; private transportList; /** * Creates a openT2T logger. * @param {string} logLevel The global winston log level. * @param {boolean} enableConsole Whether to enable console logging. */ constructor(logLevel?: string, enableConsole?: boolean); /** * Add a new winston logging transport * @param {any} transport The winston logging transport to add * @param {any} options The transport options */ addLoggerTransport(transport: any, options: any): void; /** * Remove a winston logging transport * @param {any} transport The winston logging transport to remove */ removeLoggerTransport(transport: any): void; /** * Add a telemetry tracker transport * @param {ITrackerTransport} transport The telemetry tracker transport to add */ addTrackerTransport(transport: ITrackerTransport): void; /** * Remove a telemetry tracker transport * @param {ITrackerTransport} transport The telemetry tracker transport to remove */ removeTrackerTransport(transport: ITrackerTransport): void; /** * Emit a winston log error * @param {string} msg The error message * @param {any} logObject Error properties */ error(msg: string, logObject?: any): void; /** * Emit a winston log warning * @param {string} msg The warning message * @param {any} logObject Warning properties */ warn(msg: string, logObject?: any): void; /** * Emit a winston log information message * @param {string} msg The info message * @param {any} logObject Info message properties */ info(msg: string, logObject?: any): void; /** * Emit a winston log verbose message * @param {string} msg The verbose message * @param {any} logObject Verbose message properties */ verbose(msg: string, logObject?: any): void; /** * Emit a winston log debug message * @param {string} msg The debug message * @param {any} logObject Debug message properties */ debug(msg: string, logObject?: any): void; /** * Emit a telemetry event * @param {string} name Event name * @param {number} duration Event duration in milliseconds * @param {*} data Event data */ event(name: string, duration: number, data?: { [key: string]: any; }): void; /** * Emit a telemetry trace * @param {string} message Trace message * @param {TraceLevel} traceLevel Trace level * @param {*} data Trace data */ trace(message: string, traceLevel: TraceLevel, data?: { [key: string]: any; }): void; /** * Emit a telemetry metric * @param {string} name Metric name * @param {number} value Metric value * @param {number} count Metric count * @param {number} min Min value * @param {number} max Max value * @param {*} data Metric data */ metric(name: string, value: number, count?: number, min?: number, max?: number, data?: { [key: string]: any; }): void; /** * Emit a telemetry exception * @param {Error} exception The error that was encountered * @param {*} data Exception data */ exception(exception: Error, data?: { [key: string]: any; }): void; /** * Gets the names of the configured winston logging transports */ getConfiguredLoggerTransports(): Array; private callAllTrackingTransports(action); }