Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}