我在OS X Yosemite 10.10.2上,用C ++编写Cocoa应用程序
我正在尝试使用setlogmask设置syslog的日志记录级别,但它似乎只记录错误消息。代码:
openlog("test", ( LOG_CONS | LOG_PID), LOG_USER );
setlogmask(LOG_UPTO(LOG_DEBUG));
syslog(LOG_ERR, "abcdefg error log.");
syslog(LOG_INFO, "abcdefg info log.");
syslog(LOG_DEBUG, "abcdefg debug log.");
只有错误日志显示在/var/log/system.log中 万一我误解了我试过的LOG_UPTO
setlogmask(LOG_UPTO(LOG_DEBUG));
setlogmask(LOG_UPTO(LOG_ERR));
setlogmask(0);
setlogmask(255);
始终获得相同的结果:
Feb 16 12:47:53 Mac-Pro.local test[28408]: abcdefg error log.
我错过了什么?
答案 0 :(得分:1)
想出来。 /etc/asl.conf将syslog设置为忽略低于警告的任何内容,这是有道理的。
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/asl.conf.5.html