OS X syslog忽略setlogmask并仅记录错误

时间:2015-02-16 17:58:23

标签: c++ cocoa logging osx-yosemite syslog

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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

想出来。 /etc/asl.conf将syslog设置为忽略低于警告的任何内容,这是有道理的。

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