如何使用Xcode和c ++将日志消息发送到Console应用程序?

时间:2013-01-12 02:29:33

标签: c++ xcode logging console

如何使用Xcode和c ++将日志消息发送到Console.app?我可以访问的唯一代码是c ++源代码,而不是Objective-C代码。此外,商店中的其他开发人员需要能够使用Mac控制台应用程序(Console.app)关注日志消息,因此无法使用Xcode控制台。我基本上是在寻找NSLog替代方案。这样的简单。感谢。

1 个答案:

答案 0 :(得分:4)

如果要写入系统日志,可以使用syslog(),如下所示:

openlog("foo", (LOG_CONS|LOG_PERROR|LOG_PID), LOG_USER);
syslog(priority, "%s", "a message");
closelog();

但是,我发现写入我自己的日志文件更方便,可以通过Console.app读取。这让我可以比syslog()支持更好的格式化,而且我也不必在系统日志中的许多其他消息中搜索我的消息。

以下是我为一个名为“foo”的程序执行此操作的方法:

  1. 获取当前用户的主目录。您可以使用getuid()和getpwuid()来获取passwd结构,并从中分析主目录字符串。
  2. 将“/Library/Logs/foo.log”附加到主目录字符串。
  3. 使用它作为fopen()的路径参数为日志文件创建FILE *。
  4. 然后使用标准的fprintf(),fflush()等调用来写入日志文件。
  5. 程序执行结束时关闭日志文件。
  6. 您可以通过打开文件>在Console.app中查看此结果。 〜/资源库/日志。文件“foo.log”将存在并包含您日志记录的内容。