无法在 Kotlin Multiplatform 中导入 os.log

问题描述 投票:0回答:3

我正在尝试实现 kotlin 多平台记录器。在iOS架构的实现过程中,我无法导入os.log来使用os_log。我该如何做到这一点或者我还可以使用什么来登录 Kotlin 多平台项目中的 iOS?

kotlin kotlin-multiplatform
3个回答
3
投票

问题是

OSLog
类只有 Swift API:请参阅 here。由于 Kotlin/Native 不提供直接的互操作性,因此某些框架不可用(例如,请参阅 SwiftUI 的相同问题)。开箱即用的最佳选择是使用
NSLog
,正如 Philip 建议的那样,或者使用一些第三方库。

有一个资源,其中列出了流行的 Kotlin 多平台库:https: //github.com/AAkira/Kotlin-Multiplatform-Libraries#logging。这可能是一个很好的起点。对此需要注意的两个重要事项:

  1. 此列表不包括所有库。当然,还有一些不错的库尚未包含在内。
  2. 我推荐它作为社区的入口点。 Philips 的建议非常好,也许还有一些其他方法可以在库或 kotlinlang Slack 中看到。

1
投票

您可以简单地使用 kotlin

println
,在 iOS 部分您也可以使用
platform.Foundation.NSLog
进行格式化输出


0
投票

val TAG =“事件”

使用此格式

fun printLog(msg: String) {
   NSLog("$TAG $msg") 
}

不要这样使用。

 NSLog(TAG, msg)

我不知道原因,但它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.