我在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.

我想念什么?

最佳答案

弄清楚了。 /etc/asl.conf设置系统日志以忽略警告以下的任何内容,这是有道理的。

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/asl.conf.5.html

关于c++ - OS X syslog忽略setlogmask,仅记录错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28547522/

10-12 22:04