UNPKG

azify-logger

Version:

Azify Logger Client - Centralized logging for OpenSearch

124 lines (108 loc) 3.32 kB
/** * AzifyLogger class for structured logging with OpenTelemetry integration */ export class AzifyLogger { /** * Creates an instance of AzifyLogger * @param options - Configuration options */ constructor(options?: { serviceName?: string; loggerUrl?: string; environment?: string; }); /** * Sends a log entry to the azify-logger service * @param level - Log level (info, error, warn, debug) * @param message - Log message * @param meta - Additional metadata to include in the log */ log(level: string, message: string, meta?: Record<string, any>): Promise<void>; /** * Logs an info level message * @param message - Log message * @param meta - Additional metadata */ info(message: string, meta?: Record<string, any>): Promise<void>; /** * Logs an error level message with optional error object * @param message - Log message * @param error - Error object to include in metadata * @param meta - Additional metadata */ error(message: string, error?: Error | null, meta?: Record<string, any>): Promise<void>; /** * Logs a warning level message * @param message - Log message * @param meta - Additional metadata */ warn(message: string, meta?: Record<string, any>): Promise<void>; /** * Logs a debug level message * @param message - Log message * @param meta - Additional metadata */ debug(message: string, meta?: Record<string, any>): Promise<void>; } /** * Creates a new AzifyLogger instance with custom options * @param options - Configuration options * @returns New AzifyLogger instance */ export function createAzifyLogger(options?: { serviceName?: string; loggerUrl?: string; environment?: string; }): AzifyLogger; /** * Creates a new AzifyLogger instance using environment variables and automatically intercepts console * @returns New AzifyLogger instance configured from environment * @example * const logger = createAzifyLoggerFromEnv(); * logger.info('Hello world'); * console.log('This will also appear in OpenSearch!'); */ export function createAzifyLoggerFromEnv(): AzifyLogger; /** * Intercepts all console methods to send logs to azify-logger * @param logger - AzifyLogger instance to use for logging * @example * const logger = createAzifyLoggerFromEnv(); * interceptConsole(logger); * console.log('This will appear in OpenSearch!'); */ export function interceptConsole(logger: AzifyLogger): void; /** * Streams for different logging libraries */ export const streams: { createBunyanStream: any; createPinoStream: any; }; /** * Express middleware function type */ export type ExpressMiddleware = (req: any, res: any, next: () => void) => void; /** * Creates an Express middleware for automatic request/response logging * @param options - Configuration options * @returns Express middleware function */ export function createExpressLoggingMiddleware(options?: { serviceName?: string; loggerUrl?: string; environment?: string; }): ExpressMiddleware; /** * Default Express middleware function */ declare const azifyMiddleware: () => ExpressMiddleware; /** * Middleware for different frameworks */ export const middleware: { restify: any; express: () => ExpressMiddleware; }; export default azifyMiddleware; export default AzifyLogger;