syslog-portal
Version:
A portal for ingesting syslog data
30 lines (29 loc) • 1.44 kB
TypeScript
/// <reference types="pouchdb-core" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { EventEmitter } from 'events';
import { ILogMessage, ILogMessageListener, IServer } from '../interfaces/server.js';
import { IConfig } from '../models/config.js';
import { Logger } from 'pino';
import { PRI } from '../models/rfc5424.js';
import { IWatchDog } from '../interfaces/watchDog.js';
export declare abstract class BaseServer extends EventEmitter implements IServer {
protected readonly _port: number;
protected readonly _log: Logger;
protected readonly _listeners: Set<ILogMessageListener>;
protected readonly _healthMonitor: IWatchDog;
protected _entityId?: string;
constructor(config: IConfig, logger: Logger, watchDog: IWatchDog);
abstract startListening(): Promise<void>;
abstract close(): Promise<void>;
protected parseMessage(data: Buffer, remoteInfo: any): void;
protected extractToken(data: string, parserState: any): string;
protected extractTimestamp(data: string, parserState: any): Date;
protected extractVersion(data: string, parserState: any): string;
protected extractPri(data: string, parserState: any): PRI;
protected emitLogMessage(message: ILogMessage): Promise<void>;
onLogMessage(listener: ILogMessageListener): void;
offLogMessage(listener: ILogMessageListener): void;
protected pingMonitor(): void;
}