strogger
Version:
📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
67 lines • 3.11 kB
TypeScript
import { LogLevel } from "../index";
import type { LogEntry } from "../types";
export interface CloudWatchTransportOptions {
level?: LogLevel;
logGroupName?: string;
logStreamName?: string;
region?: string;
maxStreamSize?: number;
maxStreamAge?: number;
batchSize?: number;
flushInterval?: number;
}
export interface CloudWatchTransportState {
currentStreamName: string;
currentStreamSize: number;
streamStartTime: number;
sequenceToken: string | undefined;
batch: LogEntry[];
flushTimer?: ReturnType<typeof setInterval>;
}
export declare const createCloudWatchTransportExample: (options?: {
level?: LogLevel;
maxStreamSize?: number;
maxStreamAge?: number;
}) => {
log: (entry: {
level: number;
timestamp: string;
message: string;
}) => Promise<void>;
setLevel: (level: LogLevel) => void;
getLevel: () => LogLevel;
};
export declare const loggerWithCloudWatchTransport: {
debug: (message: string, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
info: (message: string, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
warn: (message: string, context?: import("../types").LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
error: (message: string, context?: import("../types").LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
fatal: (message: string, context?: import("../types").LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionStart: (functionName: string, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionEnd: (functionName: string, duration: number, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logDatabaseOperation: (operation: string, table: string, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logApiRequest: (method: string, path: string, statusCode: number, context?: import("../types").LogContext, metadata?: Record<string, unknown>) => Promise<void>;
setLevel: (level: LogLevel) => void;
getLevel: () => LogLevel;
getInstanceId: () => string;
addTransport: (transport: import("../types").Transport) => number;
removeTransport: (transport: import("../types").Transport) => void;
setFormatter: (_newFormatter: import("../types").Formatter) => void;
getSamplingStats: () => {
rateLimit: {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
} | undefined;
sampling: {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
} | undefined;
};
flush: () => Promise<void>;
getBatchStats: () => Record<string, unknown>[];
};
//# sourceMappingURL=cloudwatch-transport-example.d.ts.map