zoukankan      html  css  js  c++  java
  • c日志宏

    仅供参考,不推荐

    #ifdef _DEBUG
    #define LOGDEBUG(format, ...)
    {
    FILE *fp = fopen("nccli.log", "ab+");if(fp!=NULL){
    time_t t = time(0);
    struct tm ttt = *localtime(&t);
    fprintf(fp, "[DEBUG] [%5d %4d-%02d-%02d %02d:%02d:%02d] [%s:%d] " format "",
    GetCurrentProcessId(), ttt.tm_year + 1900, ttt.tm_mon + 1, ttt.tm_mday, ttt.tm_hour,
    ttt.tm_min, ttt.tm_sec, __FUNCTION__ , __LINE__, ##__VA_ARGS__);
    fclose(fp);}
    }
    
    #define LOGERROR(format, ...)
    {
    FILE *fp = fopen("nccli.log", "ab+");if(fp!=NULL){
    time_t t = time(0);
    struct tm ttt = *localtime(&t);
    fprintf(fp, "[ERROR] [%5d %4d-%02d-%02d %02d:%02d:%02d] [%s:%d] " format "",
    GetCurrentProcessId(), ttt.tm_year + 1900, ttt.tm_mon + 1, ttt.tm_mday, ttt.tm_hour,
    ttt.tm_min, ttt.tm_sec, __FUNCTION__ , __LINE__, ##__VA_ARGS__);
    fclose(fp);}
    }
    #else
    #define LOGDEBUG(format, ...)
    {
    time_t t = time(0);
    struct tm ttt = *localtime(&t);
    fprintf(stdout, "[DEBUG] [%5d %4d-%02d-%02d %02d:%02d:%02d] [%s:%d] " format "",
    GetCurrentProcessId(), ttt.tm_year + 1900, ttt.tm_mon + 1, ttt.tm_mday, ttt.tm_hour,
    ttt.tm_min, ttt.tm_sec, __FUNCTION__ , __LINE__, ##__VA_ARGS__);
    }
    #define LOGERROR(format, ...)
    {
    time_t t = time(0);
    struct tm ttt = *localtime(&t);
    fprintf(stderr, "[ERROR] [%5d %4d-%02d-%02d %02d:%02d:%02d] [%s:%d] " format "",
    GetCurrentProcessId(), ttt.tm_year + 1900, ttt.tm_mon + 1, ttt.tm_mday, ttt.tm_hour,
    ttt.tm_min, ttt.tm_sec, __FUNCTION__ , __LINE__, ##__VA_ARGS__);
    }
    #endif
    
  • 相关阅读:
    单例模式
    建造者模式
    工厂模式
    八大排序算法之插入排序
    八大排序算法之基数排序
    lua 4 使用table实现其他数据结构,并介绍遍历方法
    lua 3 循环
    lua 2 变量
    lua 1 基本语法和注意事项
    template指针小测试
  • 原文地址:https://www.cnblogs.com/cqvoip/p/8078857.html
Copyright © 2011-2022 走看看