我徒劳地尝试使用asl_set_filter
。我知道默认过滤器会阻止ASL_LEVEL_INFO
和ASL_LEVEL_DEBUG
登录syslogd
。我在下面使用asl_set_filter
应该删除该限制:
aslclient _logClient = asl_open("LoggerPlayCmd", "com.apple.console", ASL_OPT_STDERR);
asl_set_filter(_logClient, ASL_FILTER_MASK_UPTO(ASL_LEVEL_DEBUG));
#define LOG(level) asl_log(_logClient, NULL, (level), "Logging entry at level %s(%d)", (#level), (level));
LOG(ASL_LEVEL_EMERG);
LOG(ASL_LEVEL_ALERT);
LOG(ASL_LEVEL_CRIT);
LOG(ASL_LEVEL_ERR);
LOG(ASL_LEVEL_WARNING);
LOG(ASL_LEVEL_NOTICE);
LOG(ASL_LEVEL_INFO);
LOG(ASL_LEVEL_DEBUG);
asl_close(_logClient);
然而,Console.app中的输出明显不包括INFO和DEBUG行,就好像没有调用asl_set_limit一样。
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_EMERG(0)
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_ALERT(1)
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_CRIT(2)
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_ERR(3)
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_WARNING(4)
14/03/2016 10:13:46.407 LoggerPlayCmd[29684]: Log entry ASL_LEVEL_NOTICE(5)
我做错了什么?
微米。