是否有一种方法可以使用Logger/OSLogStore,以便在扩展中执行的日志记录可以稍后由应用程序检索?
例如,假设一个应用程序的日志如下所示:
let logger = Logger(subsystem: "com.mysubsystem.log", category: "app")
logger.debug("app stuff")
字符串
假设一个扩展(例如通知服务扩展)的日志如下所示:
let logger = Logger(subsystem: "com.mysubsystem.log", category: "ext")
logger.debug("ext stuff")
型
然后,下次运行应用程序时,如果它尝试使用以下代码检索日志:
let logStore = try! OSLogStore(scope: .currentProcessIdentifier)
let oneHourAgo = logStore.position(date: Date().addingTimeInterval(-3600))
let allEntries = try! logStore.getEntries(at: oneHourAgo)
for entry in allEntries {
look at the content of the entry
型
然后在for循环中,有很多很多的东西被检索,包括“app的东西”,但没有“ext的东西”。应用程序是否可以回顾性地检索在扩展内执行的日志记录?
1条答案
按热度按时间vpfxa7rd1#
根据我的研究,你不能直接从使用OSLogStore的主应用程序中的扩展中获取日志。它们是独立的过程,所以不是这样工作的。
您可能可以使用应用程序组在应用程序和扩展之间共享日志,但这可能很棘手。另一种方法是将日志发送到服务器,但这也可能很复杂。
我想没有简单直接的方法来做到这一点:/