@0xobelisk/graphql-server
Version:
Tookit for interacting with dubhe graphql server
80 lines • 2.95 kB
TypeScript
import pino from 'pino';
export interface LoggerConfig {
level?: string;
service?: string;
component?: string;
enableFileLogging?: boolean;
logsDir?: string;
}
export interface ComponentLoggerMethods {
debug: (message: string, meta?: any) => void;
info: (message: string, meta?: any) => void;
warn: (message: string, meta?: any) => void;
error: (message: string, error?: any, meta?: any) => void;
}
/**
* High-performance logging system based on Pino
*/
export declare class Logger {
private pinoInstance;
private config;
constructor(config?: LoggerConfig);
/**
* Ensure logs directory exists
*/
private ensureLogsDirectory;
/**
* Create Pino instance
*/
private createPinoInstance;
/**
* Setup exception handlers
*/
private setupExceptionHandlers;
/**
* Create component logger with context
*/
createComponentLogger(component: string): ComponentLoggerMethods;
/**
* Get raw Pino instance
*/
getPinoInstance(): pino.Logger;
/**
* Log performance metrics
*/
logPerformance(operation: string, startTime: number, meta?: any): void;
/**
* Log Express HTTP requests
*/
logExpress(method: string, path: string, statusCode: number, startTime: number, meta?: any): void;
/**
* Log database operations
*/
logDatabaseOperation(operation: string, table?: string, meta?: any): void;
/**
* Log WebSocket events
*/
logWebSocketEvent(event: string, clientCount?: number, meta?: any): void;
/**
* Log GraphQL queries
*/
logGraphQLQuery(operation: string, query?: string, variables?: any): void;
}
export declare const dbLogger: ComponentLoggerMethods;
export declare const serverLogger: ComponentLoggerMethods;
export declare const httpLogger: ComponentLoggerMethods;
export declare const wsLogger: ComponentLoggerMethods;
export declare const gqlLogger: ComponentLoggerMethods;
export declare const subscriptionLogger: ComponentLoggerMethods;
export declare const systemLogger: ComponentLoggerMethods;
export declare const authLogger: ComponentLoggerMethods;
export declare const perfLogger: ComponentLoggerMethods;
export declare const createComponentLogger: (component: string) => ComponentLoggerMethods;
export declare const logPerformance: (operation: string, startTime: number, meta?: any) => void;
export declare const logExpress: (method: string, path: string, statusCode: number, startTime: number, meta?: any) => void;
export declare const logDatabaseOperation: (operation: string, table?: string, meta?: any) => void;
export declare const logWebSocketEvent: (event: string, clientCount?: number, meta?: any) => void;
export declare const logGraphQLQuery: (operation: string, query?: string, variables?: any) => void;
declare const _default: pino.Logger<never>;
export default _default;
//# sourceMappingURL=index.d.ts.map