NSLog在我受祝福的HelperTool中不起作用

时间:2012-01-11 18:50:27

标签: objective-c macos cocoa nslog

为了创建自定义数据包并使用libpcap,我创建了一个以root身份运行的辅助工具,这要归功于SMJobBless。 在我的帮助工具中,NSLog不会向console.app发送任何日志。 我必须使用syslog在控制台中发送日志,但是我在记录对象问题时遇到了问题。

有没有人知道为什么NSLog不能在这样一个有福的帮手工具中工作?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

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