我需要将日志记录到OSLog
并并行记录到一个文件中(由于OSLogStore
无法提供旧日志)。
在XNUMX-C中,我可以使用宏实现中的__FILE__
和__LINE__
来实现这一点,它们仍然引用原始代码中的位置。我试着创建一个Swift宏来让它在Swift中工作。但是,log()
采用宏定义文件的文件号和行号,而不是在调用代码中的位置。因此,当我单击元数据链接时,我将被带到宏而不是调用位置。
有什么解决办法吗?#file
和#line
在宏中正确设置,但无法为log()
函数指定文件和行号。
2条答案
按热度按时间5vf7fwbs1#
不幸的是,你没有办法做到这一点 *。苹果在他们的无限智慧中认为没有人会做这样的事情。
来自苹果论坛的内部Eskimo居民的建议是,你写一个Swift宏来 Package 它,基本上为每个日志语句写两行日志。
yhxst69z2#
我也遇到过类似的问题,通过将
OSLogStore
内容转储到文件中来解决它。