f5-conx-core
Version:
F5 SDK for JavaScript with Typescript type definitions
119 lines (118 loc) • 2.79 kB
TypeScript
import { AxiosResponseWithTimings, uuidAxiosRequestConfig } from './utils/httpModels';
/**
* logLevel definitions
*/
export type logLevels = 'DEBUG' | 'INFO' | 'WARNING' | 'ERROR';
/**
*
* Basic Example:
*
* ```ts
* // set logging to debug
* process.env.F5_CONX_CORE_LOG_LEVEL = 'DEBUG';
*
* // instantiate and import logger
* import { logger } from './logger';
*
* // turn off console logging
* logger.console = false;
*
* // create OUTPUT channel
* const f5OutputChannel = window.createOutputChannel('f5');
*
* // inject vscode output into logger
* logger.output = function (log: string) {
* f5OutputChannel.appendLine(log);
};
* ```
*
* ```bash
* export F5_CONX_CORE_LOG_LEVEL='DEBUG'
* ```
*/
export default class Logger {
/**
* journal array of log messages
*/
readonly journal: string[];
/**
* log level
*/
logLevel: logLevels;
/**
* buffer log messages in the journal
* @default true
*/
buffer: boolean;
/**
* output log messages to console
* @default true
*/
console: boolean;
/**
* logging environment variable
*
* the "VSCODE_F5_LOG_LEVEL" of the following;
*
* process.env.VSCODE_F5_LOG_LEVEL = 'DEBUG';
*/
logEnv: string;
constructor(env: string);
/**
* clear/delete buffer/journal
*/
clearLogs(): number;
private haveLogEnv;
/**
*
* log http request information depending on env logging level (info/debug)
*
* ex. process.env.F5_CONX_CORE_LOG_LEVEL === 'INFO/DEBUG'
*
* @param config
*/
httpRequest(config: uuidAxiosRequestConfig): Promise<void>;
/**
*
* log http response information depending on env logging level (info/debug)
*
* ex. process.env.F5_CONX_CORE_LOG_LEVEL === 'INFO/DEBUG'
*
* @param resp
*/
httpResponse(resp: AxiosResponseWithTimings): Promise<void>;
/**
* overwritable function to allow additional output integrations
*
* ```ts
* // inject vscode output into logger
* logger.output = function (log: string) {
* f5OutputChannel.appendLine(log);
* };
* ```
* @param x log message
*/
output: (x: string) => void;
/**
* Log debug message
*/
debug(...msg: [unknown, ...unknown[]]): void;
/**
* Log informational message
*/
info(...msg: [unknown, ...unknown[]]): void;
/**
* Log warning message
*/
warn(...msg: [unknown, ...unknown[]]): void;
/**
* Log error message
*/
error(...msg: [unknown, ...unknown[]]): void;
/**
* base log function
*/
log(level: logLevels, ...messageParts: unknown[]): void;
private _checkLogLevel;
private stringify;
}