Skip to content

Log

Public surface (log):
setMode · isEnabled · liveMode · practiceMode ·
getSdkLogs · searchSdkLogs · debug · info · warn · error

type SDKLogLevel = 'debug' | 'info' | 'warn' | 'error'
type SDKLogDomain =
| 'analytics' | 'congresses' | 'contacts' | 'crm'
| 'data' | 'database' | 'device' | 'http' | 'localforage' | 'log'
| 'network' | 'permissions' | 'presentation' | 'scanner' | 'search' | 'session'
| 'share' | 'storage' | 'ui' | 'user' | 'sdk'
interface SDKLogEntry {
id: number
timestamp: string // ISO 8601
level: SDKLogLevel
domain: SDKLogDomain
function: string | null
message: string
durationMs: number | null
retryCount: number | null
metadata: Record<string, unknown> | null
}
interface SDKLogFilter {
level?: SDKLogLevel
domain?: SDKLogDomain
function?: string
since?: string
until?: string
retriesOnly?: boolean
limit?: number // default 100
}
setMode(enabled: boolean): void
isEnabled(): boolean
import mobilelocker from '@mobilelocker/javascript-sdk'
mobilelocker.log.setMode(true)
console.log(mobilelocker.log.isEnabled()) // true
liveMode(uri?: string): void // default uri ''
practiceMode(uri?: string): void

Emits analytics events (session_live_mode activate / deactivate).

mobilelocker.log.liveMode()
mobilelocker.log.practiceMode('/practice')
debug(message: string, metadata?: Record<string, unknown>): void
info(message: string, metadata?: Record<string, unknown>): void
warn(message: string, metadata?: Record<string, unknown>): void
error(message: string, metadata?: Record<string, unknown>): void
mobilelocker.log.info('User selected product', { productId: 42, slide: 'overview' })
mobilelocker.log.error('CRM failed', { code: 'crm_auth_expired' })

Inside Mobile Locker, entries post to the host. Outside, they buffer in IndexedDB (up to 1000 entries).

getSdkLogs(filter?: SDKLogFilter): Promise<SDKLogEntry[]>
searchSdkLogs(text: string, filter?: SDKLogFilter): Promise<SDKLogEntry[]>
const errors = await mobilelocker.log.getSdkLogs({ level: 'error', domain: 'crm' })
const hits = await mobilelocker.log.searchSdkLogs('timeout', { limit: 50 })