azify-logger
Version:
Azify Logger Client - Centralized logging for OpenSearch
124 lines (108 loc) • 3.32 kB
TypeScript
/**
* 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;