【问题标题】:How to redirect NSLog to 3rd-party log destination in swift project?如何将 NSLog 重定向到 swift 项目中的第 3 方日志目标?
【发布时间】:2017-09-05 04:29:24
【问题描述】:

我有一个引用 3rd-party 框架的项目。它使用NSLog。我想将NSLog 重定向到其他目的地(比如Dotzu

是否可以在我的项目中覆盖 NSLog?

【问题讨论】:

标签: swift nslog


【解决方案1】:

你不能覆盖它,因为它是一个函数,而不是一个方法。但是,NSLog()NSLogv() 的讨论中所述的某些条件下额外写入stderr,由NSLog() 调用:

将错误消息记录到 Apple 系统日志工具(参见 man 3 asl)。如果 STDERR_FILENO 文件描述符已从默认值重定向或将转到 tty,它也将被写入那里。如果您想将输出定向到其他地方,则需要使用自定义日志记录工具。

所以只需使用freopen() 重定向STDERR_FILENO

【讨论】:

  • 谢谢您,您解决了我的第一个问题,但是如何将其定向到Dotzu?好像没有办法?
  • 它自己不行吗?有一个选项:打开一个“伪文件”并重定向到这个。但是,Dotzu 必须支持它。我不知道 Dotzu。
  • 我没有。好的,谢谢你的回答。我试试看
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多