Verwenden Sie printf, um die C-Sprache für die Ausgabe von Protokollen nach Level wie bei Android zu aktivieren

Der Code wurde vor vielen Jahren im Projekt geschrieben, jetzt organisiere ich den CSDN-Blog und nehme ihn erneut auf.

#include <stdio.h>

#define LOG_LEVEL 0x0F

#define LOG_LVL_ERROR 0x01
#define LOG_LVL_WARN  0x02
#define LOG_LVL_INFO  0x04
#define LOG_LVL_DEBUG 0x08

#if (LOG_LEVEL & LOG_LVL_ERROR)
#define LOGE(format, ...) \
    do {
    
     \
        fprintf(stderr, "ERROR   %-16s %4d   " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
    } while (0)
#else
#define LOGE(format, ...) \
    do {
    
     } while (0)
#endif

#if (LOG_LEVEL & LOG_LVL_WARN)
#define LOGW(format, ...) \
    do {
    
     \
        fprintf(stderr, "WARNING %-16s %4d   " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
    } while (0)
#else
#define LOGW(format, ...) \
    do {
    
     } while (0)
#endif

#if (LOG_LEVEL & LOG_LVL_INFO)
#define LOGI(format, ...) \
    do {
    
     \
        fprintf(stderr, "INFO    %-16s %4d   " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
    } while (0)
#else
#define LOGI(format, ...) \
    do {
    
     } while (0)
#endif

#if (LOG_LEVEL & LOG_LVL_DEBUG)
#define LOGD(format, ...) \
    do {
    
     \
        fprintf(stderr, "DEBUG   %-16s %4d   " format "\n", __FILE__, __LINE__, ##__VA_ARGS__ ); \
    } while (0)
#else
#define LOGD(format, ...) \
    do {
    
     } while (0)
#endif

Supongo que te gusta

Origin blog.csdn.net/cshoney/article/details/90113424
Recomendado
Clasificación