UNPKG

@testim/coralogix-logger

Version:

Node.js SDK to send your logs to Coralogix

145 lines (144 loc) 4.17 kB
import { Log } from "./entities/log"; import { LoggerConfig } from "./entities/LoggerConfig"; /** * @class LoggerManager * @classdesc Class LoggerManager representing logging queue manager * @description Create new instance of logging queue manager */ export declare class LoggerManager { /** * @member {LoggerConfig} config * @memberOf LoggerManager * @description Configuration object * @public */ config: LoggerConfig; /** * @member {number} bufferSize * @memberOf LoggerManager * @description Logger manager buffer size * @default 0 * @private */ private bufferSize; /** * @member {number} addLogStream * @memberOf LoggerManager * @description Logger manager logs stream * @private */ private addLogStream; /** * @member {Subscription} logStreamSubscription * @memberOf LoggerManager * @description Logger manager logs stream subscription object * @private */ private logStreamSubscription; /** * @member {Observable<HTTPResponse>} logBulkObs$ * @memberOf LoggerManager * @description Logs bulk observable instance * @private */ private logBulkObs$; /** * @member {Subject<boolean>} pauser$ * @memberOf LoggerManager * @description Logger manager queue pauser subject * @default new Subject<boolean>() * @private */ private pauser$; /** * @member {Subject<any>} flush$ * @memberOf LoggerManager * @description Logger manager queue flush subject * @default new Subject<any>() * @private */ private flush$; /** * @member {Promise<void>} flushed * @memberOf LoggerManager * @description internal state for when the logs were flushed * @private */ private flushedPromise; /** * @member {Promise<void>} () => void * @memberOf LoggerManager * @description a resolver for when the flush promise is fulfilled * @private */ private flushPromiseFulfilled; /** * @description Initialize new instance of LoggerManager object */ constructor(); /** * @method waitForFlush * @description waits for all the currently pending to be written to the Coralogix backend * @memberOf LoggerManager * @public * @returns {Promise} returns a promise that settles when all the pending logs have been written */ waitForFlush(): Promise<void>; /** * @method addLogline * @description Add log line to logger manager queue * @memberOf LoggerManager * @param {Log} log - Log line object instance * @public */ addLogline(log: Log): void; /** * @method close * @description Close logger manager and flush queue * @memberOf LoggerManager * @public */ close(): void; /** * @method flush * @description Flush logger manager queue * @memberOf LoggerManager * @public */ flush(): void; /** * @method subscribe * @description Subscribe on logger manager observable events * @memberOf LoggerManager * @public */ subscribe(): void; /** * @method sendBulk * @description Send logs buffer to Coralogix * @memberOf LoggerManager * @param {Log[]} buffer - Logs buffer * @private */ private sendBulk(buffer); /** * @method cleanAfterSend * @description On buffer send completed (success of failed) free the buffer size * @memberOf LoggerManager * @param {Log[]} sentBuffer - Logs buffer * @private */ private cleanAfterSend(sentBuffer); /** * @method cleanAfterSend * @description Return an on error observable that will retry * for "HTTP_SEND_RETRY_COUNT" with a delay * of "HTTP_SEND_RETRY_INTERVAL" after the max retry * times are exceed will throw an error * @memberOf LoggerManager * @param errors$ - Errors list * @private * @returns {Observable<T>} Logger manager observable object */ private retryObservable(errors$); }