2012-01-11 50 views
2

为了创建自定义数据包并使用libpcap,我创建了一个帮助工具,该工具以root身份运行,这要感谢SMJobBless。 在我的帮助工具中,NSLog不会发送任何日志到console.app。 我必须使用系统日志,它将控制台中的日志发送给我,但是我遇到了记录对象问题的问题。NSLog在我祝福的帮助工具中不起作用

有没有人有一个想法,为什么NSLog不能在这样一个幸运的帮助工具中工作?

回答

1

3年后,只找到了答案:日志由HelperTool由root用户发送。

使用sudo启动Console.app使日志显示。

1

我不知道为什么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);