예제 #1
0
파일: logging.c 프로젝트: miksago/icecast
void restart_logging (ice_config_t *config)
{
    if (strcmp (config->error_log, "-"))
    {
        char fn_error[FILENAME_MAX];
        snprintf (fn_error, FILENAME_MAX, "%s%s%s", config->log_dir, PATH_SEPARATOR, config->error_log);
        log_set_filename (errorlog, fn_error);
        log_set_level (errorlog, config->loglevel);
        log_set_trigger (errorlog, config->logsize);
        log_set_archive_timestamp(errorlog, config->logarchive);
        log_reopen (errorlog);
    }

    if (strcmp (config->access_log, "-"))
    {
        char fn_error[FILENAME_MAX];
        snprintf (fn_error, FILENAME_MAX, "%s%s%s", config->log_dir, PATH_SEPARATOR, config->access_log);
        log_set_filename (accesslog, fn_error);
        log_set_trigger (accesslog, config->logsize);
        log_set_archive_timestamp (accesslog, config->logarchive);
        log_reopen (accesslog);
    }

    if (config->playlist_log)
    {
        char fn_error[FILENAME_MAX];
        snprintf (fn_error, FILENAME_MAX, "%s%s%s", config->log_dir, PATH_SEPARATOR, config->playlist_log);
        log_set_filename (playlistlog, fn_error);
        log_set_trigger (playlistlog, config->logsize);
        log_set_archive_timestamp (playlistlog, config->logarchive);
        log_reopen (playlistlog);
    }
}
예제 #2
0
int restart_logging (ice_config_t *config)
{
    ice_config_t *current = config_get_config_unlocked();
    mount_proxy *m;
    int ret = 0;

    config->error_log.logid = current->error_log.logid;
    config->access_log.logid = current->access_log.logid;
    config->playlist_log.logid = current->playlist_log.logid;

    if (recheck_log_file (config, &config->error_log.logid, config->error_log.name) < 0)
        ret = -1;
    else
    {
        log_set_trigger (config->error_log.logid, config->error_log.size);
        log_set_reopen_after (config->error_log.logid, config->error_log.duration);
        log_set_lines_kept (config->error_log.logid, config->error_log.display);
        log_set_archive_timestamp (config->error_log.logid, config->error_log.archive);
        log_set_level (config->error_log.logid, config->error_log.level);
    }
    thread_use_log_id (config->error_log.logid);
    errorlog = config->error_log.logid; /* value stays static so avoid taking the config lock */

    if (recheck_log_file (config, &config->access_log.logid, config->access_log.name) < 0)
        ret = -1;
    else
    {
        log_set_trigger (config->access_log.logid, config->access_log.size);
        log_set_reopen_after (config->access_log.logid, config->access_log.duration);
        log_set_lines_kept (config->access_log.logid, config->access_log.display);
        log_set_archive_timestamp (config->access_log.logid, config->access_log.archive);
        log_set_level (config->access_log.logid, 4);
    }

    if (recheck_log_file (config, &config->playlist_log.logid, config->playlist_log.name) < 0)
        ret = -1;
    else
    {
        log_set_trigger (config->playlist_log.logid, config->playlist_log.size);
        log_set_reopen_after (config->playlist_log.logid, config->playlist_log.duration);
        log_set_lines_kept (config->playlist_log.logid, config->playlist_log.display);
        log_set_archive_timestamp (config->playlist_log.logid, config->playlist_log.archive);
        log_set_level (config->playlist_log.logid, 4);
    }
    playlistlog = config->playlist_log.logid;
    m = config->mounts;
    while (m)
    {
        if (recheck_log_file (config, &m->access_log.logid, m->access_log.name) < 0)
            ret = -1;
        else
        {
            log_set_trigger (m->access_log.logid, m->access_log.size);
            log_set_reopen_after (m->access_log.logid, m->access_log.duration);
            log_set_lines_kept (m->access_log.logid, m->access_log.display);
            log_set_archive_timestamp (m->access_log.logid, m->access_log.archive);
            log_set_level (m->access_log.logid, 4);
        }
        m = m->next;
    }
    return ret;
}