Exemplo n.º 1
0
EXTAPI void gps_log(int type , int priority , const char *tag , const char *fmt , ...)
{
	va_list ap;
	va_start(ap, fmt);
	
	switch (type) {
		case GPS_LOG_PRINT_FILE:
			gps_debug_file_fd = open(GPS_SERVER_MSG_LOG_FILE, O_WRONLY|O_CREAT|O_APPEND, 0644);
			if (gps_debug_file_fd != -1) {
				vsnprintf(gps_debug_file_buf,255, fmt , ap );
				write(gps_debug_file_fd, gps_debug_file_buf, strlen(gps_debug_file_buf));
				close(gps_debug_file_fd);
			}
			break;

		case GPS_LOG_SYSLOG:
			int syslog_prio;
			switch (priority) {
				case GPS_LOG_ERR:
					syslog_prio = LOG_ERR|LOG_DAEMON;
					break;
					
				case GPS_LOG_DBG:
					syslog_prio = LOG_DEBUG|LOG_DAEMON;
					break;

				case GPS_LOG_INFO:
					syslog_prio = LOG_INFO|LOG_DAEMON;
					break;
					
				default:
					syslog_prio = priority;
					break;
			}
			
			vsyslog(syslog_prio, fmt, ap);
			break;

		case GPS_LOG_DLOG:
			if (tag) {
				switch (priority) {
					case GPS_LOG_ERR:
						SLOG_VA(LOG_ERROR, tag ? tag : "NULL" , fmt ? fmt : "NULL" , ap);
						break;

					case GPS_LOG_DBG:
						SLOG_VA(LOG_DEBUG, tag ? tag : "NULL", fmt ? fmt : "NULL" , ap);
						break;

					case GPS_LOG_INFO:
						SLOG_VA(LOG_INFO, tag ? tag : "NULL" , fmt ? fmt : "NULL" , ap);
						break;
				}
			}
			break;
	}

	va_end(ap);
}
Exemplo n.º 2
0
static void logger(void *data, mrp_log_level_t level, const char *file,
                   int line, const char *func, const char *format, va_list ap)
{
    va_list cp;

    MRP_UNUSED(data);
    MRP_UNUSED(file);
    MRP_UNUSED(line);
    MRP_UNUSED(func);

    va_copy(cp, ap);
    switch (level) {
    case MRP_LOG_ERROR:   SLOG_VA(LOG_ERROR, log_tag, format, cp); break;
    case MRP_LOG_WARNING: SLOG_VA(LOG_WARN,  log_tag, format, cp); break;
    case MRP_LOG_INFO:    SLOG_VA(LOG_INFO,  log_tag, format, cp); break;
    case MRP_LOG_DEBUG:   SLOG_VA(LOG_DEBUG, log_tag, format, cp); break;
    default:                                                       break;
    }
    va_end(cp);
}