Logging
Forward Nativeblocks SDK events to Firebase, Amplitude, PostHog, or any analytics and crash-reporting service.
Register a logger to capture SDK events and forward them to Firebase, Amplitude, PostHog, or any other service.
Implement a Logger
class AnalyticsLogger : INativeLogger {
override fun log(
level: LoggerEventLevel,
event: String,
message: String,
parameters: Map<String, String>
) {
when (level) {
LoggerEventLevel.INFO -> {
// Firebase Analytics
Firebase.analytics.logEvent(event) {
parameters.forEach { (key, value) -> param(key, value) }
}
// Amplitude
Amplitude.getInstance().logEvent(event, JSONObject(parameters))
// PostHog
PostHog.capture(event, properties = parameters)
}
LoggerEventLevel.WARNING -> {
MyMonitoring.warn(tag = event, message = message, extra = parameters)
}
LoggerEventLevel.ERROR -> {
// Crashlytics
Crashlytics.log("[$event] $message")
Crashlytics.setCustomKeys { parameters.forEach { (k, v) -> key(k, v) } }
}
}
}
}
Register the Logger
NativeblocksManager.getInstance().provideEventLogger(
loggerType = "ANALYTICS_LOGGER",
logger = AnalyticsLogger()
)
Log levels
| Level | When it fires |
|---|---|
INFO | Normal lifecycle: frame loaded, block rendered, action triggered |
WARNING | Non-critical issues: missing optional block, slow network response |
ERROR | Failures: frame not found, action crashed, network error |