Exemplo n.º 1
0
static void
vdebug_out(int prefix, enum debug_level level, enum debug_component comp,
	       const char * func_name, int line_no,
       	       const char * fmt, va_list ap)
{
	/* output to stderr even if haven't init */
	if (fdebug_out == NULL)
		fdebug_out = stderr;

	if (debug_levels[comp] <= level) {
		if (level >= WARNING) {
			if (level == FORCE)
				turn_blue();
			else
				turn_red();
		}
		if (prefix) {
			fprintf (fdebug_out, "[%s %s@%s:%d]\t", get_comp_name(comp),
					get_level_name(level), func_name, line_no);
		}

		vfprintf (fdebug_out, fmt, ap);

		if (level >= WARNING)
			turn_normal();
		fflush(fdebug_out);
	}
}
Exemplo n.º 2
0
Mogu_Logger::Mogu_Logger()
{
    if (LOG_OVERRIDE)
    {
        log_level = (int)Log_Level::all;
        return;
    }
    
    Redis::Node_Editor log_config {Prefix::meta, "log"};
    if (!log_config.node_exists())
    {
        log_level = (int) Log_Level::none;
    }
    else
    {
        std::string s = log_config.read();
        log_level = (int) get_level_enum(s);
    }

    std::string cfg_level = log_config.read();
    log_level = (int) get_level_enum(cfg_level);
    std::cout << "Logger created with log level "
        << get_level_name((Log_Level)log_level) 
        << std::endl;
}
Exemplo n.º 3
0
Arquivo: log.cpp Projeto: huayl/ssdb
int Logger::logv(int level, const char *fmt, va_list ap){
	if(logger.level_ < level){
		return 0;
	}

	char buf[LOG_BUF_LEN];
	int len;
	char *ptr = buf;

	time_t time;
	struct timeval tv;
	struct tm *tm, tm_tmp;
	gettimeofday(&tv, NULL);
	time = tv.tv_sec;
	tm = localtime_r(&time, &tm_tmp);
	/* %3ld 在数值位数超过3位的时候不起作用, 所以这里转成int */
	len = sprintf(ptr, "%04d-%02d-%02d %02d:%02d:%02d.%03d ",
		tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
		tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec/1000));
	if(len < 0){
		return -1;
	}
	ptr += len;

	memcpy(ptr, get_level_name(level), LEVEL_NAME_LEN);
	ptr += LEVEL_NAME_LEN;

	int space = sizeof(buf) - (ptr - buf) - 10;
	len = vsnprintf(ptr, space, fmt, ap);
	if(len < 0){
		return -1;
	}
	ptr += len > space? space : len;
	*ptr++ = '\n';
	*ptr = '\0';

	len = ptr - buf;
	if(this->mutex){
		pthread_mutex_lock(this->mutex);
	}
	write(this->fd, buf, len);

	if(this->fd != STDOUT_FILENO && this->fd != STDERR_FILENO){
		stats.w_curr += len;
		stats.w_total += len;
		if(rotate_size_ > 0 && stats.w_curr > rotate_size_){
			this->rotate();
		}
	}
	if(this->mutex){
		pthread_mutex_unlock(this->mutex);
	}

	return len;
}
Exemplo n.º 4
0
void LogHandler (const gchar* log_domain,
                GLogLevelFlags log_level,
                const gchar* message,
                gpointer user_data)
{
  if (log_level & levels_to_log)
  {
    std::string domain = log_domain ? log_domain : "default";
    get_log_stream() << "[" << domain << "] " << get_level_name(log_level) << ": " << message << std::endl;
  }
}
Exemplo n.º 5
0
    int Logger::logv(int level, const char *fmt, va_list ap){
        Logger *logger = get_or_create_global_logger();
        if(logger->level_ < level){
            return 0;
        }

        char buf[LOG_BUF_LEN];
        int len;
        char *ptr = buf;

        time_t time;
        struct timeval tv;
        struct tm *tm;
        gettimeofday(&tv, NULL);
        time = tv.tv_sec;
        tm = localtime(&time);
        len = sprintf(ptr, "%04d-%02d-%02d %02d:%02d:%02d.%03d ",
                tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
                tm->tm_hour, tm->tm_min, tm->tm_sec, static_cast<int>(tv.tv_usec/1000));
        if(len < 0){
            return -1;
        }
        ptr += len;

        memcpy(ptr, get_level_name(level), LEVEL_NAME_LEN);
        ptr += LEVEL_NAME_LEN;

        int space = static_cast<int> (sizeof(buf) - (ptr - buf) - 10);
        len = vsnprintf(ptr, space, fmt, ap);
        if(len < 0){
            return -1;
        }
        ptr += len > space? space : len;
        *ptr++ = '\n';
        *ptr = '\0';

        len = static_cast<int>(ptr - buf);
        {
            base::MutexGuard<base::MutexLock> guard(mutex_);
            fwrite(buf, len, 1, fp_);
            fflush(fp_);

            stats.w_curr += len;
            stats.w_total += len;
            if(rotate_size_ > 0 && stats.w_curr > rotate_size_){
                this->rotate();
            }
        }
        return len;
    }
Exemplo n.º 6
0
static void
vmessage_out(int prefix, enum debug_level l, enum debug_component c, char * fmt, va_list ap)
{
	/* output to stdout if haven't init */
	if (fdebug_out == NULL)
		fdebug_out = stdout;
	if (l >= WARNING)
		turn_red();

	if (prefix)
		fprintf(fdebug_out, "%s: ", get_level_name(l));
	vfprintf(fdebug_out, fmt, ap);

	if (l >= WARNING)
		turn_normal();
	fflush(fdebug_out);
}
Exemplo n.º 7
0
static GstFlowReturn
gst_dirac_parse_handle_frame (GstBaseParse * parse,
                              GstBaseParseFrame * frame, gint * skipsize)
{
    int off;
    guint32 next_header;
    GstMapInfo map;
    guint8 *data;
    gsize size;
    gboolean have_picture = FALSE;
    int offset;
    guint framesize = 0;

    gst_buffer_map (frame->buffer, &map, GST_MAP_READ);
    data = map.data;
    size = map.size;

    if (G_UNLIKELY (size < 13)) {
        *skipsize = 1;
        goto out;
    }

    GST_DEBUG ("%" G_GSIZE_FORMAT ": %02x %02x %02x %02x", size, data[0], data[1],
               data[2], data[3]);

    if (GST_READ_UINT32_BE (data) != 0x42424344) {
        GstByteReader reader;

        gst_byte_reader_init (&reader, data, size);
        off = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff,
                0x42424344, 0, size);

        if (off < 0) {
            *skipsize = size - 3;
            goto out;
        }

        GST_LOG_OBJECT (parse, "possible sync at buffer offset %d", off);

        GST_DEBUG ("skipping %d", off);
        *skipsize = off;
        goto out;
    }

    /* have sync, parse chunks */

    offset = 0;
    while (!have_picture) {
        GST_DEBUG ("offset %d:", offset);

        if (offset + 13 >= size) {
            framesize = offset + 13;
            goto out;
        }

        GST_DEBUG ("chunk type %02x", data[offset + 4]);

        if (GST_READ_UINT32_BE (data + offset) != 0x42424344) {
            GST_DEBUG ("bad header");
            *skipsize = 3;
            goto out;
        }

        next_header = GST_READ_UINT32_BE (data + offset + 5);
        GST_DEBUG ("next_header %d", next_header);
        if (next_header == 0)
            next_header = 13;

        if (SCHRO_PARSE_CODE_IS_PICTURE (data[offset + 4])) {
            have_picture = TRUE;
        }

        offset += next_header;
        if (offset >= size) {
            framesize = offset;
            goto out;
        }
    }

    gst_buffer_unmap (frame->buffer, &map);

    framesize = offset;
    GST_DEBUG ("framesize %d", framesize);

    g_assert (framesize <= size);

    if (data[4] == SCHRO_PARSE_CODE_SEQUENCE_HEADER) {
        GstCaps *caps;
        GstDiracParse *diracparse = GST_DIRAC_PARSE (parse);
        DiracSequenceHeader sequence_header;
        int ret;

        ret = dirac_sequence_header_parse (&sequence_header, data + 13, size - 13);
        if (ret) {
            memcpy (&diracparse->sequence_header, &sequence_header,
                    sizeof (sequence_header));
            caps = gst_caps_new_simple ("video/x-dirac",
                                        "width", G_TYPE_INT, sequence_header.width,
                                        "height", G_TYPE_INT, sequence_header.height,
                                        "framerate", GST_TYPE_FRACTION,
                                        sequence_header.frame_rate_numerator,
                                        sequence_header.frame_rate_denominator,
                                        "pixel-aspect-ratio", GST_TYPE_FRACTION,
                                        sequence_header.aspect_ratio_numerator,
                                        sequence_header.aspect_ratio_denominator,
                                        "interlace-mode", G_TYPE_STRING,
                                        sequence_header.interlaced ? "interleaved" : "progressive",
                                        "profile", G_TYPE_STRING, get_profile_name (sequence_header.profile),
                                        "level", G_TYPE_STRING, get_level_name (sequence_header.level), NULL);
            gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
            gst_caps_unref (caps);

            gst_base_parse_set_frame_rate (parse,
                                           sequence_header.frame_rate_numerator,
                                           sequence_header.frame_rate_denominator, 0, 0);
        }
    }

    gst_base_parse_set_min_frame_size (parse, 13);

    return gst_base_parse_finish_frame (parse, frame, framesize);

out:
    gst_buffer_unmap (frame->buffer, &map);
    if (framesize)
        gst_base_parse_set_min_frame_size (parse, framesize);
    return GST_FLOW_OK;
}