fun e(tag: String, message: String, throwable: Throwable? = null) fun d(tag: String, message: String) fun i(tag: String, message: String) } // androidMain actual object Log { actual fun e(tag: String, message: String, throwable: Throwable?) { Log.e(tag, message, throwable) } // ... } // iosMain actual object Log { actual fun e(tag: String, message: String, throwable: Throwable?) { if (throwable != null) { NSLog("ERROR: [$tag] $message. Throwable: $throwable") } else { NSLog("ERROR: [$tag] $message") } } // ... }