Example #1
0
static void put_ctx(bt_log_message *const msg)
{
	_PP_MAP(_BT_LOG_MESSAGE_FORMAT_INIT, BT_LOG_MESSAGE_CTX_FORMAT)
#if !_BT_LOG_MESSAGE_FORMAT_FIELDS(BT_LOG_MESSAGE_CTX_FORMAT)
	VAR_UNUSED(msg);
#else
	#if _BT_LOG_MESSAGE_FORMAT_DATETIME_USED
	struct tm tm;
	unsigned msec;
	g_time_cb(&tm, &msec);
	#endif
	#if _BT_LOG_MESSAGE_FORMAT_CONTAINS(PID, BT_LOG_MESSAGE_CTX_FORMAT) || \
		_BT_LOG_MESSAGE_FORMAT_CONTAINS(TID, BT_LOG_MESSAGE_CTX_FORMAT)
	int pid, tid;
	g_pid_cb(&pid, &tid);
	#endif

	#if BT_LOG_OPTIMIZE_SIZE
	int n;
	n = snprintf(msg->p, nprintf_size(msg),
				 _PP_MAP(_BT_LOG_MESSAGE_FORMAT_PRINTF_FMT, BT_LOG_MESSAGE_CTX_FORMAT)
                 _PP_MAP(_BT_LOG_MESSAGE_FORMAT_PRINTF_VAL, BT_LOG_MESSAGE_CTX_FORMAT));
	put_nprintf(msg, n);
	#else
	char buf[64];
	char *const e = buf + sizeof(buf);
	char *p = e;
	_PP_RMAP(_BT_LOG_MESSAGE_FORMAT_PUT_R, BT_LOG_MESSAGE_CTX_FORMAT)
	msg->p = put_stringn(p, e, msg->p, msg->e);
	#endif
#endif
}
Example #2
0
static void put_msg(zf_log_message *const msg,
					const char *const fmt, va_list va)
{
	int n;
	msg->msg_b = msg->p;
	n = vsnprintf(msg->p, nprintf_size(msg), fmt, va);
	put_nprintf(msg, n);
}
Example #3
0
static void put_src(zf_log_message *const msg, const src_location *const src)
{
#if ZF_LOG_OPTIMIZE_SIZE
	int n;
	n = snprintf(msg->p, nprintf_size(msg), "%s@%s:%u ",
				 src->func, filename(src->file), src->line);
	put_nprintf(msg, n);
#else
	msg->p = put_string(src->func, msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = '@';
	msg->p = put_string(filename(src->file), msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = ':';
	msg->p = put_uint(src->line, 0, '\0', msg->p, msg->e);
	if (msg->p < msg->e) *msg->p++ = ' ';
#endif
}
Example #4
0
static void put_ctx(zf_log_message *const msg)
{
	struct tm tm;
	unsigned msec;
	int pid, tid;
	g_time_cb(&tm, &msec);
	g_pid_cb(&pid, &tid);

#if ZF_LOG_OPTIMIZE_SIZE
	int n;
	n = snprintf(msg->p, nprintf_size(msg),
				 "%02u-%02u %02u:%02u:%02u.%03u %5i %5i %c ",
				 (unsigned)(tm.tm_mon + 1), (unsigned)tm.tm_mday,
				 (unsigned)tm.tm_hour, (unsigned)tm.tm_min, (unsigned)tm.tm_sec,
				 (unsigned)msec,
				 pid, tid, (char)lvl_char(msg->lvl));
	put_nprintf(msg, n);
#else
	char buf[64];
	char *const e = buf + sizeof(buf);
	char *p = e;
	*--p = ' ';
	*--p = lvl_char(msg->lvl);
	*--p = ' ';
	p = put_int_r(tid, 5, ' ', p);
	*--p = ' ';
	p = put_int_r(pid, 5, ' ', p);
	*--p = ' ';
	p = put_uint_r(msec, 3, '0', p);
	*--p = '.';
	p = put_uint_r(tm.tm_sec, 2, '0', p);
	*--p = ':';
	p = put_uint_r(tm.tm_min, 2, '0', p);
	*--p = ':';
	p = put_uint_r(tm.tm_hour, 2, '0', p);
	*--p = ' ';
	p = put_uint_r(tm.tm_mday, 2, '0', p);
	*--p = '-';
	p = put_uint_r(tm.tm_mon + 1, 2, '0', p);
	msg->p = put_stringn(p, e, msg->p, msg->e);
#endif
}
Example #5
0
static void put_src(bt_log_message *const msg, const src_location *const src)
{
	_PP_MAP(_BT_LOG_MESSAGE_FORMAT_INIT, BT_LOG_MESSAGE_SRC_FORMAT)
#if !_BT_LOG_MESSAGE_FORMAT_CONTAINS(FUNCTION, BT_LOG_MESSAGE_SRC_FORMAT) && \
	!_BT_LOG_MESSAGE_FORMAT_CONTAINS(FILENAME, BT_LOG_MESSAGE_SRC_FORMAT) && \
	!_BT_LOG_MESSAGE_FORMAT_CONTAINS(FILELINE, BT_LOG_MESSAGE_SRC_FORMAT)
	VAR_UNUSED(src);
#endif
#if !_BT_LOG_MESSAGE_FORMAT_FIELDS(BT_LOG_MESSAGE_SRC_FORMAT)
	VAR_UNUSED(msg);
#else
	#if BT_LOG_OPTIMIZE_SIZE
	int n;
	n = snprintf(msg->p, nprintf_size(msg),
				 _PP_MAP(_BT_LOG_MESSAGE_FORMAT_PRINTF_FMT, BT_LOG_MESSAGE_SRC_FORMAT)
                 _PP_MAP(_BT_LOG_MESSAGE_FORMAT_PRINTF_VAL, BT_LOG_MESSAGE_SRC_FORMAT));
	put_nprintf(msg, n);
	#else
	_PP_MAP(_BT_LOG_MESSAGE_FORMAT_PUT, BT_LOG_MESSAGE_SRC_FORMAT)
	#endif
#endif
}