예제 #1
0
파일: log.c 프로젝트: bravechou2009/seafile
static void 
ccnet_log (const gchar *log_domain, GLogLevelFlags log_level,
             const gchar *message,    gpointer user_data)
{
    time_t t;
    struct tm *tm;
    char buf[1024];
    int len;

    if (log_level > ccnet_log_level)
        return;

    t = time(NULL);
    tm = localtime(&t);
    len = strftime (buf, 1024, "[%x %X] ", tm);
    g_return_if_fail (len < 1024);
    if (logfp != NULL) {
        fputs (buf, logfp);
        fputs (message, logfp);
        fflush (logfp);
    } else { // log file not available
        printf("%s %s", buf, message);
    }

    if (enable_syslog)
        syslog (get_syslog_level (log_level), "%s", message);
}
예제 #2
0
파일: xseg_user.c 프로젝트: grnet/libxseg
static void __renew_logctx(enum log_level level)
{
    /* FIXME: LOG_UPTO portability */
    setlogmask(LOG_UPTO(get_syslog_level(level)));

    return;
}
예제 #3
0
int vrtpprintf(TURN_LOG_LEVEL level, const char *format, va_list args)
{
	/* Fix for Issue 24, raised by John Selbie: */
#define MAX_RTPPRINTF_BUFFER_SIZE (1024)
	char s[MAX_RTPPRINTF_BUFFER_SIZE+1];
#undef MAX_RTPPRINTF_BUFFER_SIZE

	size_t sz;

	snprintf(s, sizeof(s), "%lu: ",(unsigned long)log_time());
	sz=strlen(s);
	vsnprintf(s+sz, sizeof(s)-1-sz, format, args);
	s[sizeof(s)-1]=0;

	if(to_syslog) {
		syslog(get_syslog_level(level),"%s",s);
	} else {
		log_lock();
		set_rtpfile();
		if(fprintf(_rtpfile,"%s",s)<0) {
			reset_rtpprintf();
		} else if(fflush(_rtpfile)<0) {
			reset_rtpprintf();
		}
		log_unlock();
	}

	return 0;
}
예제 #4
0
파일: xseg_user.c 프로젝트: grnet/libxseg
static void __init_logctx(char *peer_name, enum log_level level)
{
    openlog(peer_name, LOG_PID | LOG_CONS, LOG_LOCAL0);

    /* FIXME: LOG_UPTO portability */
    setlogmask(LOG_UPTO(get_syslog_level(level)));

    return;
}
예제 #5
0
파일: xseg_user.c 프로젝트: grnet/libxseg
void __xseg_log2(enum log_level level, char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
    vsyslog(get_syslog_level(level), fmt, ap);
	va_end(ap);

	return;
}
예제 #6
0
파일: log.c 프로젝트: ikrabbe/nyx
void
log_message(nyx_t *nyx, log_level_e level, const char *format, ...)
{
    if (!quiet)
    {
        va_list vas;
        va_start(vas, format);

        if (use_syslog)
            vsyslog(get_syslog_level(level), format, vas);
        else
        {
            FILE *stream = stdout;

            /* write to log file in case we are running as a daemon */
            if (!nyx->options.no_daemon && !nyx->is_init)
            {
                const char *log_file = nyx->options.log_file
                    ? nyx->options.log_file
                    : NYX_DEFAULT_LOG_FILE;

                stream = fopen(log_file, "a");

                /* fallback to stdout */
                if (stream == NULL)
                    stream = stdout;
            }

            log_format_msg(stream, level, format, vas);

            if (stream != NULL && stream != stdout)
                fclose(stream);
        }

        va_end(vas);
    }

    if (level & NYX_LOG_CRITICAL)
        abort();
}