我在 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 系统日志忽略 setlogmask 并且只记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547522/