为了创建自定义数据包并使用libpcap,我创建了一个帮助工具,该工具以root身份运行,这要感谢SMJobBless。 在我的帮助工具中,NSLog不会发送任何日志到console.app。 我必须使用系统日志,它将控制台中的日志发送给我,但是我遇到了记录对象问题的问题。NSLog在我祝福的帮助工具中不起作用
有没有人有一个想法,为什么NSLog不能在这样一个幸运的帮助工具中工作?
为了创建自定义数据包并使用libpcap,我创建了一个帮助工具,该工具以root身份运行,这要感谢SMJobBless。 在我的帮助工具中,NSLog不会发送任何日志到console.app。 我必须使用系统日志,它将控制台中的日志发送给我,但是我遇到了记录对象问题的问题。NSLog在我祝福的帮助工具中不起作用
有没有人有一个想法,为什么NSLog不能在这样一个幸运的帮助工具中工作?
3年后,只找到了答案:日志由HelperTool由root用户发送。
使用sudo启动Console.app使日志显示。
我不知道为什么NSLog
不会在这种情况下工作,但由于syslog
的作品,你可以解决它像这样:
#define MyLog(fmt, ...) \
syslog(LOG_INFO, [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]);
,或者如果你想影响的日志级别:
#define MyLog2(level, fmt, ...) \
syslog(level, [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]);
将宏放在您的.pch
文件中,以便您可以在所有源文件中访问它。然后,您可以使用它们像NSLog
,即使只有一个参数:
MyLog(@"Test, test, 1 2 3");
MyLog(@"Content of object: %@", myObject);