omnis-logger-sdk
Version:
SDK для интеграции Omnis Logger в проекты
116 lines • 3.51 kB
TypeScript
export interface OmnisLoggerConfig {
endpoint: string;
apiKey: string;
environment?: 'development' | 'staging' | 'production';
platform?: string;
version?: string;
userId?: string;
sessionId?: string;
enableConsole?: boolean;
enableGlobalErrorHandlers?: boolean;
enableNetworkErrorCapture?: boolean;
maxRetries?: number;
timeout?: number;
deviceInfo?: DeviceInfo;
deviceInfoModule?: any;
}
export interface LogContext {
[key: string]: any;
}
export interface DeviceInfo {
platform?: string;
os?: string;
osVersion?: string;
userAgent?: string;
language?: string;
timezone?: string;
screenWidth?: number;
screenHeight?: number;
pixelRatio?: number;
deviceId?: string;
model?: string;
brand?: string;
systemName?: string;
systemVersion?: string;
bundleId?: string;
applicationName?: string;
buildNumber?: string;
version?: string;
readableVersion?: string;
isTablet?: boolean;
deviceType?: string;
deviceName?: string;
manufacturer?: string;
isEmulator?: boolean;
uniqueId?: string;
androidId?: string;
apiLevel?: number;
hasNotch?: boolean;
hasDynamicIsland?: boolean;
networkType?: string;
isConnected?: boolean;
[key: string]: any;
}
export interface LogData {
level: 'error' | 'warn' | 'info' | 'debug';
message: string;
stack?: string;
context?: LogContext;
userAgent?: string;
url?: string;
userId?: string;
sessionId?: string;
platform?: string;
version?: string;
environment?: 'development' | 'staging' | 'production';
deviceInfo?: DeviceInfo;
}
export declare class OmnisLogger {
private config;
private client;
private queue;
private isProcessing;
private globalContext;
private deviceInfo;
constructor(config: OmnisLoggerConfig);
private initializeDeviceInfo;
private collectDeviceInfoFromModule;
private collectAsyncDeviceInfo;
private isBrowser;
private isReactNative;
private collectBrowserInfo;
private setupGlobalErrorHandlers;
private setupBrowserErrorHandlers;
private setupReactNativeErrorHandlers;
private setupNetworkErrorCapture;
private setupBrowserNetworkCapture;
private setupReactNativeNetworkCapture;
error(message: string, context?: LogContext): void;
warn(message: string, context?: LogContext): void;
info(message: string, context?: LogContext): void;
debug(message: string, context?: LogContext): void;
exception(error: Error, context?: LogContext): void;
private log;
private handleGlobalError;
private handleGlobalRejection;
private getUserAgent;
private extractUrlFromFetchArgs;
private getCurrentUrl;
private processQueue;
private sendLog;
flush(): Promise<void>;
setConfig(config: Partial<OmnisLoggerConfig>): void;
setUser(userId: string): void;
setSession(sessionId: string): void;
setGlobalContext(context: LogContext): void;
getGlobalContext(): LogContext;
clearGlobalContext(): void;
setDeviceInfo(deviceInfo: DeviceInfo): void;
getDeviceInfo(): DeviceInfo;
updateDeviceInfo(updates: Partial<DeviceInfo>): void;
}
export declare const getDeviceId: () => string;
export declare const initOmnisLogger: (config: OmnisLoggerConfig) => OmnisLogger;
export declare const getOmnisLogger: () => OmnisLogger | null;
export default OmnisLogger;
//# sourceMappingURL=index.d.ts.map