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; }
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; }
static json11::Json wbLogger_toJSONObject(wbLogger_t logger) { std::vector<json11::Json> elems{}; if (logger != NULL) { wbLogEntry_t iter; stringstream ss; for (iter = wbLogger_getHead(logger); iter != NULL; iter = wbLogEntry_getNext(iter)) { elems.push_back(wbLogEntry_toJSONObject(iter)); } } return json11::Json(elems); }
void wbLogger_clear(wbLogger_t logger) { if (logger != NULL) { wbLogEntry_t tmp; wbLogEntry_t iter; iter = wbLogger_getHead(logger); while (iter != NULL) { tmp = wbLogEntry_getNext(iter); wbLogEntry_delete(iter); iter = tmp; } wbLogger_setLength(logger, 0); wbLogger_setHead(logger, NULL); } }
string wbLogger_toJSON(wbLogger_t logger) { if (logger != NULL) { wbLogEntry_t iter; stringstream ss; for (iter = wbLogger_getHead(logger); iter != NULL; iter = wbLogEntry_getNext(iter)) { ss << wbLogEntry_toJSON(iter); if (wbLogEntry_getNext(iter) != NULL) { ss << ",\n"; } } return ss.str(); } return ""; }
string wbLogger_toXML(wbLogger_t logger) { if (logger != NULL) { wbLogEntry_t iter; stringstream ss; ss << "<logger>\n"; ss << "<type>" << "Logger" << "</type>\n"; ss << "<elements>\n"; for (iter = wbLogger_getHead(logger); iter != NULL; iter = wbLogEntry_getNext(iter)) { ss << wbLogEntry_toXML(iter); } ss << "</elements>\n"; ss << "</logger>\n"; return ss.str(); } return ""; }
string wbLogger_toJSON(wbLogger_t logger) { if (logger != NULL) { wbLogEntry_t iter; stringstream ss; ss << "{\n"; ss << wbString_quote("elements") << ":[\n"; for (iter = wbLogger_getHead(logger); iter != NULL; iter = wbLogEntry_getNext(iter)) { ss << wbLogEntry_toJSON(iter); if (wbLogEntry_getNext(iter) != NULL) { ss << ",\n"; } } ss << "]\n"; ss << "}\n"; return ss.str(); } return ""; }