c++ - OS X 系统日志忽略 setlogmask 并且只记录错误

标签 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.

我错过了什么?

最佳答案

想通了。/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/

相关文章:

c++ - 添加两个有符号或无符号整数

logging - 如何在 Go 中以非常低的成本对禁用的日志语句进行跟踪日志记录

cocoa - 如何在 Swift 中初始化 NSWindowController?

objective-c - 如何快速从网络下载图片?

string - Cocoa 字符串格式说明符的完整列表

logging - 更改 WandB 日志记录目录

java - Apache 公共(public)日志配置

c++ - 如何在不使用全局变量的情况下在函数之间使用多个变量?

c++ - 合并 unique_ptr 的两个 vector 时“使用已删除的函数”

c++ - GetInterfaceFromGlobal() 调用因 Visual Studio 2010 中的进程外 COM 服务器而失败