[osal]: add log_f function to mpp_log

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@189 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenHengming
2008-01-25 14:28:53 +00:00
parent 245ecd5124
commit 44e83d5a09
3 changed files with 45 additions and 22 deletions

View File

@@ -27,11 +27,19 @@
* mpp_dbg is for all optional message. it can be controlled by debug and flag. * mpp_dbg is for all optional message. it can be controlled by debug and flag.
*/ */
#define mpp_log(fmt, ...) _mpp_log(MODULE_TAG, fmt, ## __VA_ARGS__) #define mpp_log(fmt, ...) _mpp_log(MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
#define mpp_err(fmt, ...) _mpp_err(MODULE_TAG, fmt, ## __VA_ARGS__) #define mpp_err(fmt, ...) _mpp_err(MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
#define _mpp_dbg(debug, flag, fmt, ...) \ #define _mpp_dbg(debug, flag, fmt, ...) \
__mpp_dbg(debug, flag, MODULE_TAG, fmt, ## __VA_ARGS__) __mpp_dbg(debug, flag, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
/*
* _f function will add function name to the log
*/
#define mpp_log_f(fmt, ...) _mpp_log(MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
#define mpp_err_f(fmt, ...) _mpp_err(MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
#define _mpp_dbg_f(debug, flag, fmt, ...) \
__mpp_dbg(debug, flag, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
/* /*
* mpp_dbg usage: * mpp_dbg usage:
@@ -83,9 +91,9 @@ extern "C" {
void mpp_log_set_flag(RK_U32 flag); void mpp_log_set_flag(RK_U32 flag);
RK_U32 mpp_log_get_flag(); RK_U32 mpp_log_get_flag();
void _mpp_log(const char *tag, const char *fmt, ...); void _mpp_log(const char *tag, const char *fmt, const char *func, ...);
void _mpp_err(const char *tag, const char *fmt, ...); void _mpp_err(const char *tag, const char *fmt, const char *func, ...);
void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...); void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, const char *func, ...);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -41,52 +41,65 @@ static RK_U32 mpp_log_flag = 0;
static const char *msg_log_warning = "log message is long\n"; static const char *msg_log_warning = "log message is long\n";
static const char *msg_log_nothing = "\n"; static const char *msg_log_nothing = "\n";
void __mpp_log(mpp_log_callback func, const char *tag, const char *fmt, va_list args) void __mpp_log(mpp_log_callback func, const char *tag, const char *fmt, const char *fname, va_list args)
{ {
char msg[MPP_LOG_MAX_LEN + 1];
char *tmp = msg;
const char *buf = fmt; const char *buf = fmt;
size_t len = strnlen(fmt, MPP_LOG_MAX_LEN); size_t len_fmt = strnlen(fmt, MPP_LOG_MAX_LEN);
size_t len_name = (fname) ? (strnlen(fname, MPP_LOG_MAX_LEN)) : (0);
size_t buf_left = MPP_LOG_MAX_LEN;
size_t len_all = len_fmt + len_name;
if (NULL == tag) if (NULL == tag)
tag = MODULE_TAG; tag = MODULE_TAG;
if (len == 0) { if (len_name) {
buf = msg;
buf_left -= snprintf(msg, buf_left, "%s ", fname);
tmp += len_name + 1;
}
if (len_all == 0) {
buf = msg_log_nothing; buf = msg_log_nothing;
} else if (len == MPP_LOG_MAX_LEN) { } else if (len_all >= MPP_LOG_MAX_LEN) {
buf = msg_log_warning; buf_left -= snprintf(tmp, buf_left, "%s", msg_log_warning);
} else if (fmt[len - 1] != '\n') { buf = msg;
char msg[MPP_LOG_MAX_LEN + 1]; } else {
snprintf(msg, sizeof(msg), "%s", fmt); snprintf(tmp, buf_left, "%s", fmt);
msg[len] = '\n'; if (fmt[len_fmt - 1] != '\n') {
msg[len + 1] = '\0'; tmp[len_fmt] = '\n';
tmp[len_fmt + 1] = '\0';
}
buf = msg; buf = msg;
} }
func(tag, buf, args); func(tag, buf, args);
} }
void _mpp_log(const char *tag, const char *fmt, ...) void _mpp_log(const char *tag, const char *fmt, const char *func, ...)
{ {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
__mpp_log(os_log, tag, fmt, args); __mpp_log(os_log, tag, fmt, func, args);
va_end(args); va_end(args);
} }
void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...) void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, const char *func, ...)
{ {
if (debug & flag) { if (debug & flag) {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
__mpp_log(os_log, tag, fmt, args); __mpp_log(os_log, tag, fmt, func, args);
va_end(args); va_end(args);
} }
} }
void _mpp_err(const char *tag, const char *fmt, ...) void _mpp_err(const char *tag, const char *fmt, const char *func, ...)
{ {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
__mpp_log(os_err, tag, fmt, args); __mpp_log(os_err, tag, fmt, func, args);
va_end(args); va_end(args);
} }

View File

@@ -26,6 +26,8 @@ int main()
mpp_err("mpp log test start\n"); mpp_err("mpp log test start\n");
mpp_err_f("log_f test\n");
mpp_log("mpp log flag_set: %08x\n", mpp_log_get_flag()); mpp_log("mpp log flag_set: %08x\n", mpp_log_get_flag());
mpp_log("set flag_set to %08x\n", flag_set); mpp_log("set flag_set to %08x\n", flag_set);