NSLog не работает в моем благословенном HelperTool - PullRequest
2 голосов
/ 11 января 2012

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

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

Ответы [ 2 ]

1 голос
/ 14 мая 2015

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

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

1 голос
/ 12 января 2012

Я понятия не имею, почему 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...