c - 应用程序登录纯 win32 项目

标签 c windows logging winapi

在网络开发中,我有自己的框架,它使用日志文件来帮助我进行开发并监控错误或生产。这个 web 框架几乎总是在 *nix 上运行,使用简单的纯文本作为日志文件、logrotate 和 tail。

今天我正在创建一个 win32 应用程序,它将充当 TCP/IP 服务器(这是一个桌面应用程序,但嵌入了一些服务),我需要记录事件以便知道什么时候出现问题(在生产和开发中) ,在我创建它时进行调试)。

我记得 MFC,我有 TRACE 宏。这对开发调试来说很好。纯win32开发有TRACE之类的吗?

对于生产日志,事件日志记录的最佳方法是什么? Windows 事件日志或简单的纯文本文件?如何在 Windows 中旋转它?

谢谢, 丹尼尔·科赫

最佳答案

对于开发,通常使用一些 OutputDebugString 包装就足够了:

inline void logA(const char* format, ...)
{
    char buf[1024];
    wvsprintfA(buf, format, ((char*)&format) + sizeof(void*));
    OutputDebugStringA(buf);
}

#define DEBUG_LOG_A(format, ...) logA( \
        "(#" BOOST_PP_STRINGIZE( __LINE__ ) ") "__FUNCTION__ " : " \
        format, __VA_ARGS__)

DebugView观看它。

关于c - 应用程序登录纯 win32 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459445/

相关文章:

c - 如何使用宏?

java - 一旦我按下Escape键,jvm就会崩溃

我可以使用 strcmp 作为 bool 值吗?

c++ - 如何在 C++ Windows 游戏中播放声音?

windows - 无法在本地安装驱动器 - 通过 VPN 的 Azure 文件存储

c - 向后搜索链表,导致崩溃和奇怪的字符

c++ - 多用户信号量

logging - 自动找出 f# 中的函数名称

java - Log4j - 找不到日志文件

java - 哪种写日志语句更好