void wbLogger_append(wbLogLevel_t level, string msg, const char *file, const char *fun, int line) { wbLogEntry_t elem; wbLogger_t logger; wb_init(NULL, NULL); logger = _logger; if (wbLogger_getLevel(logger) < level) { return; } elem = wbLogEntry_initialize(level, msg, file, fun, line); #ifdef wbLogger_printOnLog if (wbLogger_printOnLog) { if (level <= wbLogger_getLevel(logger) && elem) { json11::Json json = json11::Json::object{ {"type", "logger"}, {"id", wbLogEntry_getId(elem)}, {"session_id", wbLogEntry_getSessionId(elem)}, {"data", wbLogEntry_toJSONObject(elem)}}; std::cout << json.dump() << std::endl; } } #endif /* wbLogger_printOnLog */ if (wbLogger_getHead(logger) == NULL) { wbLogger_setHead(logger, elem); } else { wbLogEntry_t prev = wbLogger_getHead(logger); while (wbLogEntry_hasNext(prev)) { prev = wbLogEntry_getNext(prev); } wbLogEntry_setNext(prev, elem); } #if 0 if (level <= wbLogger_getLevel(logger) && elem) { const char *levelName = getLevelName(level); fprintf(stderr, "= LOG: %s: %s (In %s:%s on line %d). =\n", levelName, wbLogEntry_getMessage(elem), wbLogEntry_getFile(elem), wbLogEntry_getFunction(elem), wbLogEntry_getLine(elem)); } #endif wbLogger_incrementLength(logger); return; }
static inline wbLogEntry_t wbLogEntry_new() { wbLogEntry_t elem; elem = wbNew(struct st_wbLogEntry_t); wbLogEntry_setMessage(elem, NULL); wbLogEntry_setTime(elem, _hrtime()); #ifndef NDEBUG wbLogEntry_setLevel(elem, wbLogLevel_TRACE); #else wbLogEntry_setLevel(elem, wbLogLevel_OFF); #endif wbLogEntry_setNext(elem, NULL); wbLogEntry_setLine(elem, -1); wbLogEntry_setFile(elem, NULL); wbLogEntry_setFunction(elem, NULL); return elem; }
static inline wbLogEntry_t wbLogEntry_new() { wbLogEntry_t elem; elem = wbNew(struct st_wbLogEntry_t); wbLogEntry_setId(elem, uuid()); wbLogEntry_setSessionId(elem, sessionId()); wbLogEntry_setMessage(elem, NULL); wbLogEntry_setMPIRank(elem, wbMPI_getRank()); wbLogEntry_setTime(elem, _hrtime()); wbLogEntry_setLevel(elem, wbLogLevel_TRACE); wbLogEntry_setNext(elem, NULL); wbLogEntry_setLine(elem, -1); wbLogEntry_setFile(elem, NULL); wbLogEntry_setFunction(elem, NULL); return elem; }
void wbLogger_append(wbLogLevel_t level, string msg, const char *file, const char *fun, int line) { wbLogEntry_t elem; wbLogger_t logger; wb_init(); logger = _logger; if (wbLogger_getLevel(logger) < level) { return; } elem = wbLogEntry_initialize(level, msg, file, fun, line); if (wbLogger_getHead(logger) == NULL) { wbLogger_setHead(logger, elem); } else { wbLogEntry_t prev = wbLogger_getHead(logger); while (wbLogEntry_hasNext(prev)) { prev = wbLogEntry_getNext(prev); } wbLogEntry_setNext(prev, elem); } #if 0 if (level <= wbLogger_getLevel(logger) && elem) { const char *levelName = getLevelName(level); fprintf(stderr, "= LOG: %s: %s (In %s:%s on line %d). =\n", levelName, wbLogEntry_getMessage(elem), wbLogEntry_getFile(elem), wbLogEntry_getFunction(elem), wbLogEntry_getLine(elem)); } #endif wbLogger_incrementLength(logger); return; }