EventLog API
Complete API reference for the EventLog instance.
init()
Initialize the event log. Must be called before logging events.
init(config?: Partial<EventLogConfig>): Promise<Result<void>>Parameters
config(optional): Configuration objectmaxEvents?: number- Ring buffer size (default: 1000)maxAgeDays?: number- Event retention in days (default: 7)sessionTimeoutMinutes?: number- Session timeout (default: 30)features?:network?:enabled: boolean- Enable fetch/XHR interception (default: true ifnetworkobject is present)logRequestBody?: boolean- Log request bodies (default: false)logResponseBody?: boolean- Log response bodies (default: false)maxBodySize?: number- Max body size in bytes (default: 1MB)
globalErrors?:enabled: boolean- Capture global errors (default: true)
Returns
Promise<Result<void>> - Success or error
Example
const result = await eventLog.init({
maxEvents: 2000,
maxAgeDays: 14,
sessionTimeoutMinutes: 60,
});
if (!result.ok) {
console.error('Init failed:', result.error);
}screen()
Log a screen view.
screen(name: string, params?: unknown): Result<void>Parameters
name: string- Screen nameparams?: unknown- Optional route parameters
Returns
Result<void> - Success or error
Example
import { eventLog } from 'eventlog-rn';
eventLog.screen('HomeScreen');
eventLog.screen('ProfileScreen', { userId: '123' });action()
Log a user action.
action(name: string, data?: unknown): Result<void>Parameters
name: string- Action namedata?: unknown- Optional action data
Returns
Result<void> - Success or error
Example
eventLog.action('button_clicked', { buttonId: 'checkout' });
eventLog.action('purchase_completed', { amount: 99.99, currency: 'USD' });log()
Log a message.
log(level: LogLevel, message: string, data?: unknown): Result<void>Parameters
level: LogLevel- Log level ('debug' | 'info' | 'warn' | 'error')message: string- Log messagedata?: unknown- Optional additional data
Returns
Result<void> - Success or error
Example
eventLog.log('info', 'User completed tutorial');
eventLog.log('warn', 'API slow response', { duration: 5000 });error()
Log an error.
error(error: unknown, context?: unknown): Result<void>Parameters
error: unknown- Error object or messagecontext?: unknown- Optional error context
Returns
Result<void> - Success or error
Example
try {
await riskyOperation();
} catch (error) {
eventLog.error(error, { screen: 'Checkout', step: 'payment' });
}setUser()
Set user context (attached to all future events).
setUser(user: Record<string, unknown>): voidParameters
user: Record<string, unknown>- User data
Example
eventLog.setUser({
id: '123',
email: 'user@example.com',
role: 'premium',
});setContext()
Set custom context.
setContext(key: string, value: unknown): voidParameters
key: string- Context keyvalue: unknown- Context value
Example
eventLog.setContext('featureFlags', {
newCheckout: true,
darkMode: false,
});setDeviceInfo()
Set device information.
setDeviceInfo(info: Record<string, unknown>): voidParameters
info: Record<string, unknown>- Device info
Example
eventLog.setDeviceInfo({
platform: 'ios',
version: '17.0',
model: 'iPhone 15',
});export()
Export events as JSONL.
export(options: ExportOptions): Promise<Result<string>>Parameters
options: ExportOptionsmode: 'repro' | 'full'repro: Last 2 sessions + last 10 errorsfull: All events within retention period
Returns
Promise<Result<string>> - JSONL string or error
Example
const result = await eventLog.export({ mode: 'repro' });
if (result.ok) {
console.log(result.value); // JSONL format
}clear()
Clear all events.
clear(): Promise<Result<void>>Returns
Promise<Result<void>> - Success or error
Example
await eventLog.clear();isReady()
Check if initialized.
isReady(): booleanReturns
boolean - True if initialized
Example
if (eventLog.isReady()) {
eventLog.screen('Home');
}getEvents()
Get all events from buffer.
getEvents(): Result<ReadonlyArray<Event>>Returns
Result<ReadonlyArray<Event>> - Events array or error
Example
const result = eventLog.getEvents();
if (result.ok) {
console.log(`Total events: ${result.value.length}`);
}query()
Query events with filters.
query(query: EventQuery): Result<ReadonlyArray<Event>>Parameters
query: EventQuerycategory?: EventCategory[]- Filter by categoriestimeRange?: { start: number, end: number }- Filter by timesessionId?: string- Filter by sessionsearch?: string- Search in payloadslimit?: number- Limit results
Returns
Result<ReadonlyArray<Event>> - Filtered events or error
Example
const result = eventLog.query({
category: ['error'],
timeRange: { start: Date.now() - 3600000, end: Date.now() },
limit: 10,
});