Пример #1
0
void usbmuxd_log(enum loglevel level, const char *fmt, ...)
{
	va_list ap;
	char *fs;
	struct timeval ts;
	struct tm *tp;

	if(level > log_level)
		return;

	gettimeofday(&ts, NULL);
	tp = localtime(&ts.tv_sec);

	fs = malloc(20 + strlen(fmt));

	if(log_syslog) {
		sprintf(fs, "[%d] %s\n", level, fmt);
	} else {
		strftime(fs, 10, "[%H:%M:%S", tp);
		sprintf(fs+9, ".%03d][%d] %s\n", (int)(ts.tv_usec / 1000), level, fmt);
	}

	va_start(ap, fmt);
	if (log_syslog) {
		vsyslog(level_to_syslog_level(level), fs, ap);
	} else {
		vfprintf(stderr, fs, ap);
	}
	va_end(ap);

	free(fs);
}
Пример #2
0
 template<class msg_type, class tag_type> void write_tag(msg_type & str, const tag_type & tag) const {
     ::syslog( level_to_syslog_level(tag.val) , as_string(str).c_str() );
 }