2012-01-11 3 views
2

Чтобы создать пользовательские пакеты и использовать libpcap, я создал вспомогательный инструмент, который запускается под root благодаря SMJobBless. В моем вспомогательном инструменте NSLog не отправляет никаких журналов на console.app. Мне нужно использовать syslog, который отправляет мне журналы в консоли, но у меня проблемы с регистрацией проблем с объектами.NSLog не работает в моем благословленном HelperTool

У кого-нибудь есть идея, почему NSLog не работает в таком благословенном вспомогательном инструменте?

ответ

1

3 лет после того, как, только что нашел ответ: журналы посылаются HelperTool корневого пользователя.

Запуск Console.app с помощью sudo для создания журналов.

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);