如何为 oslog 创建的日志添加不同的记录器(输出目标,如文件和 Crashlytics)?

How to add different loggers (output destination like files and Crashlytics) for logs created by oslog?

现在,如果我更改 stddr 的路径,那么我的日志将不会再转到控制台,它们只会转到日志文件。

我想知道是否有一种简单的方法可以同时拥有它们?

另外,我是否可以将 OSLog 生成的日志传递给 Crashlytics

只有当你有一个包装器来管理将日志发送到 oslog 和其他记录器时,你才能这样做。因为任何写入 "system logs" 的东西,即写入苹果日志层的存储通常对您来说是不透明的:os_log、NSLog 等。

您可以创建一个 class,它不仅可以写入 os_log,还可以写入文档目录中的本地文本文件。这样,您就可以控制记录到磁盘的内容,并且它的格式和目录对您来说是可读的,您可以控制。您可以允许用户空投该文件,使其可通过 iTunes/USB 或电子邮件读取。

另外不要忘记将您自己的日志记录层包裹在背景中 thread/process/task 以提供帮助,这样它就不会阻碍您应用的核心性能。