c++ - 如何将 C/C++ printf() 消息重定向到 Windows Phone 日志系统

标签 c++ c windows-phone-7 logging

我想编译一个 C/C++ 宏,它允许我在许多不同的平台上记录调试消息。我的代码适用于 Android、iPhone、Win32,我想添加对 WindowsPhone 的支持。

我该怎么做(能够将 ascii 消息写入日志文件/控制台)?

我是 WindowsPhone 平台的新手,所以如果几乎没有不同的日志记录系统,请告诉我使用哪一个。

我的代码附在下面:

#if (WIN_PC_OS)
  // In windows EXE's, DLL's and Lib's allow logging
  #define MY_SYSTEM_LOG_INFO(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_WARN(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   fprintf(stderr, __VA_ARGS__)
#elif (ANDR_OS)
  // Redirect log messages to android log.
  #include <android/log.h>
  #define MY_SYSTEM_LOG_INFO(...)   __android_log_print(ANDROID_LOG_INFO    ,LOG_TAG,__VA_ARGS__)
  #define MY_SYSTEM_LOG_WARN(...)   __android_log_print(ANDROID_LOG_WARN    ,LOG_TAG,__VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   __android_log_print(ANDROID_LOG_ERROR   ,LOG_TAG,__VA_ARGS__)
#elif (APPLE_OS)
  // Redirect log messages to iPhone log. Like NSLog(@__VA_ARGS__);
  #define MY_SYSTEM_LOG_INFO(...)   fprintf(stderr, __VA_ARGS__)     
  #define MY_SYSTEM_LOG_WARN(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   fprintf(stderr, __VA_ARGS__)
#else
  // Windows phone supported yet!!!!
#endif

最佳答案

Windows Phone 运行时具有常用的 stderrstdout 描述符,您可以使用它们类似于您在问题中的片段。事实上,您可以将这两种情况结合起来。

但是您已经将 C 和 C++ 都指定为问题的标签,因此请注意,如果您希望为 C++ 提供单独的宏并将 std::cerrstd 一起使用: :endl,如,

std::cerr << "INFO my info log message" << std::endl;

将刷新输出缓冲区,而对于 C,请考虑在 fprintf(stderr) 之后是否需要 fflush(stderr)

关于c++ - 如何将 C/C++ printf() 消息重定向到 Windows Phone 日志系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975073/

相关文章:

windows-phone-7 - 处理用户控件在其持有页面的代码后面的事件

android - PhoneGap :Develop on one platform and deploying to all. 这可能吗?

c++ - 没有构造函数的实例与参数列表匹配——参数类型是 :

c# - Android/Java 对应 C#/C++ 方法 GetTickCount() 的方法是什么?

比较 float 和 double

c - 从 C 程序加载原始代码

c++ - 为什么我的 C++ 代码比 LeetCode 上的 C 代码慢三倍?

c++ - 在静态方法中设置静态成员变量

使用 libtomcrypt 计算 websocket Sec-WebSocket-Accept 值

windows-phone-7 - 想从 Windows Phone 7 开发入手