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
    
  • 相关阅读:
    FreeBSD_11-系统管理——{Part_2-核心}
    FreeBSD_11-系统管理——{Part_1-xfce 桌面}
    FreeBSD_11-系统管理——{Part_0-基础}
    专题:initramfs & dracut
    拾遗:『Linux Capability』
    专题:Channel Bonding/bonding
    机器学习数学基础(三)
    洛谷P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
    机器学习数学基础(二)
    莫队学习
  • 原文地址:https://www.cnblogs.com/cqvoip/p/8078857.html
Copyright © 2011-2022 走看看