一个简单的日志方法

Posted 下雨的傍晚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的日志方法相关的知识,希望对你有一定的参考价值。

FILE *g_fileLog = NULL;
void LogInit()
{
    CString sLogPath = GetModulePath();
    sLogPath += L"\\log.txt";

    // 事实证明,这里一写要有t,ccs=UTF-8才能正确写出wchar_t
    g_fileLog = _tfopen(sLogPath, L"at,ccs=UTF-8"); 
}

bool WriteLog(LPCTSTR format, ...)
{
    time_t tm = time(0);

    TCHAR outBuf[1024] = {0};
    int res = _tcsftime(outBuf, 128, _T("[20%y年%m月%d日 %H:%M:%S] "), localtime(&tm));

    TCHAR lpszInfoBuf[1024] = {0};
    va_list args;
    va_start (args, format);
    _vstprintf_s(lpszInfoBuf, 1024, format, args);
    va_end (args);
    
    _tcscat(outBuf, lpszInfoBuf);
    _tcscat(outBuf, _T("\r\n"));
    fwrite(outBuf, sizeof(TCHAR), _tcslen(outBuf), g_fileLog);

    fflush(g_fileLog);
    return true;
}

void LogClose()
{
    fclose(g_fileLog);
}

这是的GetModulePath 是一个自己写的函数,就是获取当前程序的目录。

使用的时候先调用LogInit(); 程序关闭的时候调用LogClose();

使用示例:

WriteLog(L"打开了%d文件", 10);

以上是关于一个简单的日志方法的主要内容,如果未能解决你的问题,请参考以下文章

简单的方法来分享/讨论/协作的代码片段?

argparse 代码片段只打印部分日志

如何使用Android片段管理器传递变量[重复]

VsCode 代码片段-提升研发效率

编写代码片段的更简洁的方法

JAVA之AOP