C和C++ log

一、

这篇文章对程序日志总结很不错

将代码中的调试信息输出到日志文件中 https://www.cnblogs.com/hyacinthLJP/p/17291132.html

1. C++项目中用到c代码,各个代码打印日志用的不一样,Qt C++用qDebug,纯C++用cout,C语言用printf,但打印日志结果不同步,影响判断,误导找问题。

   所以最好采用记录日志的形式,记录的日志同步。

2.在mfc使用会出现以下错误:

错误 C4996 '_itoa': This function or variable may be unsafe. Consider using _itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

解决方法:

项目右键 -- 属性 -- C/C++ -- 预处理器 -- 预处理器定义,在里面添加  _CRT_SECURE_NO_DEPRECATE 即可;

二、C

log2.h

#ifndef LOG_H
#define LOG_H

#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif


    //class log2
    //{
    //public:
    //log2();

    void logd(const char *type_name, const uint8_t *data, int len);
    void logdx(const char *type_name, const uint8_t *data, int len);
    
    void logRemoveFile();
    //private:
    
    //};

#ifdef __cplusplus
}
#endif
#endif // LOG2_H

 

log2.c

#include "stdafx.h"//mfc 需要添加此头文件
#include "log.h"
#include "time.h"
#include "windows.h"
const char* FILE_PATH = "logc.txt";
void logd(const char *type_name, const uint8_t *data, int len)
{
    FILE* pFile = fopen("logc.txt", "a");

    SYSTEMTIME st = { 0 };
    GetLocalTime(&st);
    fprintf(pFile, "[%04d-%02d-%02d %02d:%02d:%02d %03d] ", st.wYear, st.wMonth, st.wDay,
        st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);

    fprintf(pFile, "%s\r\n", type_name);

    for (int i = 0; i < len; i++)
    {

        fprintf(pFile, " %d", data[i]);
    }

    fprintf(pFile, "\r\n");

    fflush(pFile);
    fclose(pFile);

}
void logdx(const char *type_name, const uint8_t *data,int len)
{

    FILE* pFile = fopen(FILE_PATH, "a");
    
    SYSTEMTIME st = { 0 };
    GetLocalTime(&st);
    fprintf(pFile, "[%04d-%02d-%02d %02d:%02d:%02d %03d] ", st.wYear, st.wMonth, st.wDay,
        st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);

    fprintf(pFile, "%s\r\n", type_name);

    for (int i = 0; i < len; i++)
    {

        fprintf(pFile, " %02X", data[i]);
    }
    
    fprintf(pFile, "\r\n");

    fflush(pFile);
    fclose(pFile);
}
void logRemoveFile()
{
    remove("logc.txt");
}

 

posted @ 2020-02-28 18:00  ike_li  阅读(357)  评论(0编辑  收藏  举报