Ejemplo n.º 1
0
static xmpp_log_level_t
_get_xmpp_log_level()
{
    log_level_t prof_level = log_get_filter();

    if (prof_level == PROF_LEVEL_DEBUG) {
        return XMPP_LEVEL_DEBUG;
    } else if (prof_level == PROF_LEVEL_INFO) {
        return XMPP_LEVEL_INFO;
    } else if (prof_level == PROF_LEVEL_WARN) {
        return XMPP_LEVEL_WARN;
    } else {
        return XMPP_LEVEL_ERROR;
    }
}
Ejemplo n.º 2
0
static xmpp_log_t*
_xmpp_get_file_logger(void)
{
    log_level_t prof_level = log_get_filter();
    xmpp_log_level_t xmpp_level = XMPP_LEVEL_ERROR;

    switch (prof_level) {
    case PROF_LEVEL_DEBUG:  xmpp_level = XMPP_LEVEL_DEBUG; break;
    case PROF_LEVEL_INFO:   xmpp_level = XMPP_LEVEL_INFO;  break;
    case PROF_LEVEL_WARN:   xmpp_level = XMPP_LEVEL_WARN;  break;
    default:                xmpp_level = XMPP_LEVEL_ERROR; break;
    }

    xmpp_log_t *file_log = malloc(sizeof(xmpp_log_t));
    file_log->handler = _xmpp_file_logger;
    file_log->userdata = &xmpp_level;

    return file_log;
}
Ejemplo n.º 3
0
static void
_rotate_log_file(void)
{
    gchar *log_file = _get_log_file();
    size_t len = strlen(log_file);
    char *log_file_new = malloc(len + 3);

    strncpy(log_file_new, log_file, len);
    log_file_new[len] = '.';
    log_file_new[len+1] = '1';
    log_file_new[len+2] = 0;

    log_close();
    rename(log_file, log_file_new);
    log_init(log_get_filter());

    free(log_file_new);
    free(log_file);
    log_info("Log has been rotated");
}